I could have used Jerald's gadget a couple of weeks back when we were experimenting with solar lighting in a couple of gardens in the back yard. Took a few days (perhaps more since we did it in a good stretch of rain) before we got the small main panel situated properly. Jerald's invention could have saved us some serious time!
This could also be used for tanning. Either instructions could be given to the user, or a movable platform could be moved automatically. The microcontroller could allow one to add an audible roll over tone.
All kidding aside, it is interesting that Jerald found he had to use so many photo transistors, and that he had experimented to find the result. Good work.
Yes, Naperlou, I tried using two photocells to find the brighter direction right/left. The trouble was that after the motor and photocells turned, they now found another decision -- go right or left. The motor turned erratically. I looked at charts of the sun's path and found that 110 degrees of east/west scan would be a useful range of solar energy for any latitude up to 49 degrees. 30 samples gives us 3.67 degrees of precision, so the the microcontroller could go to sleep for 3 minutes between scans. -- Jerald C
Thanks, Beth, I'm working on documenting my work with directing a motor to do the output portion of this project. For now, I hope others see its usefulness as an input device to multiplex many inputs to a single pin. -- Jerald C
Your question is exactly the one I asked when I started the project.
Their methods are probably proprietary but I believe most of them would use the brute force method of calculating the sun's position. If one searches for solar position calculations, one finds that the calculation is far from simple. While C code is available free online, it would take a microcontroller that supports a multiple precision instruction set, an input of latitude/longitude, current time, real time clock, look-up trig tables, etc. While my approach is not purely minimalist, I wanted my device to just look up and say, "Where's the sun?"
Nice work, Jerald. What I find interesting about your design is that it uses a solution that a human brain would use. No human would calculate the sun's position in order to find it quickly. Asking, "where's the sun?" should work for machines, too.
I think this is a great project - very useful for efficient collection of solar energy! I particularly like PICs for these types of projects - they are so versatile and just plain fun. The inexpensive programmers that Microchip sells don't break the bank either and their MPLAB IDE is free and very user friendly. Great job!
Nancy, Microchip provides a variety of cool PIC micrcontrollers and tons of great app notes and source code examples. I've used them in several projects and the ease in which to get them running is truly amazing. This project is just one of several examples of how microcontroller technology can easily be implemented. Great project idea!
Nancy, I agree this is a great project. PIC processors are used a lot of places. I have played around with their development kits. It's always nice to see/read about the different projects people develop.
Jerald, your project is wonderful and stimulating on a number of levels. It is simple and elegant, from the design, to the selection of microcontroller for your purpose, to your use of multiplexing. Perhaps I have missed something, but is source code available for this project?
Thank you so much for sharing this excellent design.
This is indeed a clever solution to a non-problem. We would really need it if the sun behaved like an aerobatic airplane. In actuality it "moves across the sky" at a reliable 15 deg/hour, so a simple clockwork or synchronous-motor heliostat is perfectly adequate. Even if there were a small aiming error, the derivative of the cosine is very weak in the vicinity of 0 deg, so your solar panels would still produce full output.
Hm NREL.GOV has a C source code available to the public to track the sun using time stamp and a single microcontroller. The only problem is the feedback loop. LVDT's or RVDT's can get expensive so it might be simpler to have an array of 10cent phototransistors with a microcontroller I don't know? And have a direct feedback loop between light intensity and position of sensor (assuming that sensor is in the same plane as your collector (dish or trough is fine). as to this being a non-problem I disagree. Current systems (reflector and aim mechanism) are way too expensive. It is roughly 200% of the current competing costs. It's hard to invest in solar because of the initial investment. I think cheaper ways to solve this problem are always a big plus.
The position of the sun is not as simple a problem as you might think. Go to www.analemma.com as a start. Did you know that the longest day of the year has neither the earliest sunrise nor the latest sunset? For your learning fun, just browse for "Solar Position." It is tempting to say our collecter position is close and that's good enough, but in this day when engineers try to get energy efficiency on the order of microwatts, we want all the energy we can attain. I hope the other suggested uses for the multiplexing project do not get lost in the discussion.
This is really cool. However, since when did the position of the sun become unpredictable requiring us to "find" it. By the way - you could also look up "fearlessthinker" on youtube. He has built a similar sun tracker.
The solar trackers that I have seen all had a much simpler tracking system. The rough aiming was done with a simple timer and the fine control done with 4 photodiodes placed in the sided of an x shaped metal or plastic extrusion that extended 3or 4 inched outward, and shaded the diodes that were pointed fathest away from the sun. The tracker moved towards whichever diode had the most light on it. This was all done with analog circuitry.
I've used the quad cell method ( both analog and digital ) with concentrator systems and it works quite well as part of a servoed tracker. Digital was a bit easier to cope with the sun behind clouds, sunset vs sunrise positions, etc... conditions. Hamamatsu once sold a photodetector array ( S9132 ) that output XY position of a bright spot using an on board row column multiplexer scheme. You clocked the chip and looked for maxval on the x and y data streams. I think it was under $30.
One thing I've noticed here in Hawai'i with a huge boom on PV systems. ( we currently pay .45 / kwh ) Most of the installers seem to go for aesthetics rather than efficiency. Driving through any neighborhood, you will see most PV arrays are flat to the roof pitch in whatever direction the house is pointed. The lucky folks face south.
Hi, Gregarious2. Aloha, Brah. I lived in Hawaii for 22 years.
It's fun to see people think of all the alternative solutions. There is no one right way. It depends upon your application and design goals.
My problem with analog quad cell was that the motors were constantly being nagged, "this way; oops cloud; this way." The MCU could be programmed with some hysteresis / forgiveness and sleep to save energy. Again, if you are using a parabolic channel to focus along a water pipe, you need high accuracy. In Hawaii, you have solar power to waste. Here in Montana we want that boy aimed as accurately as we can.
Hey, Dudes: anybody want to comment about applications for multiplexing apart from the solar application?
Yep, the analog quad cell / baffle arrangement worked well for detection but in a purely analog system, the servo motors were always being tickled. Digital lets you add hysteresis, averaging and any other sort of condition mediation you'd like. It's also stepper friendly. It works pretty well here in Hawai'i but I did much of my tracker work in Seattle, land of grey skies.
Everyone usually manages to settle on a solution that works for their situation ( cost, available parts, space, time, etc.. ) It's fun to learn from the diversity.
At 40-60K$ for a home PV system, I want to see every watt I can possibly get. I wonder if the contractor panels have to be marked" this side up"?
The aestetics are not only depending on the whim of the home owner, but often also simply required by local ordinance or even by law. and then also on technical feasibility. I installed a solar system on my 40 deg sloped roof (which was pretty ideal) in The Netherlands, while the roof was pointing S-W, which was not idea but even for that relative large error in orientation, the reduction in total output was less than 10%. Besides that it was not allowed to mount the panels any other way than parallel to the roof and it would also be rather infeasible to mount panels at an angle on a sloped tile roof, while it is trivial to mount panels a few inches above the tiles in an array. The array covered the majority of the roof surface and I already had to appear in front of the commission judging the aesthetics of the neighborhood because they did not like my design (after a neighbor complained - probably jealousy). When I showed a cleverly taken picture with the blue sky reflecting on both the (blue) panels and the 3 windows in the roof as well as the hot water collector, so they all appeared in the same surface and matching color, nicely contrasting to the yellow brick of the walls, they saw the idea of the complete surface and no longer applied the standard law that you have to stay away from windows with solar panels and approved my design. Pfoei. (This was a 3kWp array plus a solar hot water panel of 6x6ft embedded between 3 tilting windows of 3x6ft)
I have thought about a solar tracker - say you have a day when it starts out sunny, but gets heavy overcast. Do you keep tracking, hoping for sun, or do you shut down your tracker because there isn't enough power coming off the panel to replace wha the tracker uses? Or the day starts off cloudy and the sun comes out at noon. If 2 of these days some in sequence it was cheaper to quit tracking when the sun faded, and start tracking when the sun reached some minimum intensity.
For solar power you really need to consider the total power budget of every component. If a given component uses too much power, and a tracker running when there is no sun is a total waste of power, then it means you won't have power for other, possibly more important uses. If I don't run the tracker on a day with no sun, I have power for lights that night so a disabled resident can see their way to the restroom.
So - on a day with plenty of sun, solar tracking is a plus. An a day with no sun, tracking the "non-existant" sun is a total loss.
to kf2qd, I agree that the MCU program should include inputs and logic to stop tracking when the sun is dim. BTW, I've messaged the editor to include my source code in the link. There should also be a hysteresis in searching, i.e., consider letting the MCU and motors sleep for 2 or 3 minutes before making a correction. Hysteresis is more important for a small collector than a big array. And let's remember that not all collectors are flat panels. If we use a parabolic channel to focus light along a pipe, we need high aiming accuracy -- and we need to stop tracking when ambient conditions or temperature say it's a waste of energy.
Have fun making the circuit and entering the program. I hope the focus of the device shifts to its multiplexing purpose. Everyone is focused on the solar application, but the sensors can be anything.
The program compares TWO banks (vertical and horizontal) of 30 analog sensors EACH. It uses one-byte precision or a maximum of 256 digital values. 256 divided by 30 sensors gives approximately 1 in 8 chance of two sensors having the same value. If you modify the PIC program to sense all 64 possible switches of the MUX into one pin of the MCU, you should consider right justifying the bits to get 10 bits of precision or 1024 values. This involves modifying the code at comments provided in the code. Contact me with any questions.
@kf2qd: You probably never measured the output of a solar panel when a cloud appears. It is simply actually - the output power is linear with the amount of light.
Since it does not get pitch dark when a cloud appears, the solar panel does not stop delivering power. It may be half the amount and on very severely overcast (dreadful dark grey rainy days as there are in The Netherlands) the output may be in the order of 10%, but they still deliver power.
Since the tracker should consume a minuscule amount of power, it has a very large gear reduction since it does not move fast, so it can be powered by a small motor and even that motor needs to operation only part time, there is no reason to stop tracking when "the sun disappears" behind a cloud. The power consumed by the tracker should be in the order of 1% of the array output and it has the potential to double the daily energy output - depending on latitude and shadowing.
At the end of the day the panels are typically parked in more or less horizontal position anyway, which is safety in case a storm comes at night.
Note that the tracker will not lose the sun even when it is clouded for a long time, since the sun has a predictable path. So, as long as you do not completely reset your tracker and it has either a clock or knowledge of the previus sun position it can continue to point the panels to the correct position even when it has no good measurements for some time (or ever - it may be completely based on time and latitude to calculate the sun position).
I wonder why so many sensors were used. I know that it is in theory possible to make a tracker with a single photo sensor, but the simplest systems I have seen always use two pairs of sensors, one in X and one in Y direction to find the sun when starting from any orientation.
zomeworks, a company in new mexico has a totally non electrical solution to the tracking problem thats quite popular with cattle ranchers with desert watering holes that uses 2 canisters of freon (or similar) connected with piping so that when the panels shade one it becomes heavier tilting the panels appropriately. there's lots of ways to skin this cat !
It's me, the author again. Does anyone have a good circuit for Gadget Freak that finds the sun with analog comparators? I tried using several op amp comparators all voting on who had the brightest signal. It didn't work very well. Show me where I went wrong. Maybe you used your method for some other purpose.
I built a a simple tracker in the mid-80's using 5 small, matched solar cells, voltage comparators and two shading strips. I forget how the motors were driven, just that it wasn't very pretty and it used dual battery packs. It worked really well, though.
I've also seen a cone shaped design which had 4 parallel holes with CdS cells at the bottom and a reference cell at the tip.
I tried to understand "almighty" processors being used everywhere. From MP3 players to refrigerators and even coffee machines.Why do we love to complicate things? I agree with John E , who described a design similar to the one , that I published (with Bob Pease blessing) about 30 years ago in Popular Electronics. Hundreds of trackers are using it and it has only 4 photo resistors and simple differential-servo system.I had tons of positive feedbacks and never heard anything negative on it , except that some people did not understand how servo works and what kind of transistors to use on an output.Sixty phototransistors?Isn't it a bit of overshoot?It would be great for navigation , but to move solar panels we do not need such a sophistication.Just my humble opinion.....I always loved analog.
I mostly agree with you. In fact, I tried connecting four photocells to four opamp comparators. I ran the non-inverting of one into the inverting of the next one in a ring. The binary search for right/left, up/down didn't work. It kept getting distracted by clouds and rocks and shadows and the motors went wild like a hound dog on a scent. If anyone has an efficient analog design, I'm interested.
But, again, I'm disappointed that everyone focuses on the solar application -- but then I guess I should have changed the title. The circuit and program is really about multiplexing in general. When I did aircraft flutter tests back in 1980 this little circuit would have been more powerful than the DEC PDP 11/70 we were using.
I have my old design for sure. All this interference and "chatter" can be eliminated by integration and delay of a signal that is usually splendidly done by installing a capacitor in the output driving circuit.
Here in Europe, I would choose a microcontroller with a built-in RTC (real-time-clock). Knowing time and date, I can predict when the sun appears on the horizon, the elevation and when it disappears again in the evening. On cloudy, rainy days it might be useful not to switch on the servos. However, if the sun shows some erratic behavior which makes it necessary to follow it by an X/Y-tracker, your circuit might be better... (but I've never seen this on our planet).
I remembered Forrest Mims describing his solar tracking device in the defunct Science Probe Magazine. It consisted of an analog circuit driving a dc motor. The detectors for the circuit were solar cells attached to the dc motor. Based on the sun's position, the motor will point the solar cells in the direction of the sunlight. As explained and demonstrated in this project, a small microcontroller can enhance the performance of such a basic sun tracking device. Cool project!!
mrdon, I actually started my project by trying to use two pairs of photoresistors to find the sun -- one pair for vertical and a pair for horizontal. I discovered that photoresistors are too imprecise and too non-linear. They always ended up cockeyed. If you wish to point a parabolic cylinder at a water pipe, your aim must be within 3 degrees of error. I may publish a revision showing how to use Gray code converters to sense and control position. I would probably take the easy way out on a second pass and just use an Arduino board.
Iagree, photoresistors response time is quite slow when reacting to sunlight. IR LEDs maybe a better choice because of their fast respones time and wavelength associated with the sun. I know Forrest Mims have done a lot of work in sun tracking using IR LEDs as well as traditional red LEDs. You should be able to find his published worked on this subject at his websites listed below.
Hello Jerald. Nice project. It is neat and even though it is a slow responding system let's be realistic how long does it take the sun to move across the horizon. I think your system is orders of magnitude fast for its application. Here is a neat thought. Nrel.gov has solar tracking software that helps you calculate position of the sun, track it, and confirm it and it does all this with a time table based on your location. I believe they also use an array of 5-9 photoresistors and 2 stepper motors to pivot the photo resistors such that the center one is facing the sun with an accuracy of about 0.1degrees (I was jealous when I found out this can be done with a simple peak detect algorithm. the only difference you don't move down a list of numbers to find the peak but you step your motors to sweep the direction you think the sun is in. Swap direction when you get a negative slope on your intensity). Provided they use a DSP with 128 legs+ but neat projects all of them.
@ervin0072002. Thanks for the comments. I was aware of software that calculates solar position. The last I checked, it takes many pages of C++ code, especially if you include things like atmospheric diffraction and altitude. The floating point calculations would require 32-bit MCUs, not that that's a big problem. This would also require inputs to tell the device where it is (either keypad or GPS) and a real time clock. I like your suggestion about the peak detect algorithm -- except that the servos have to move just to do the sensing. I prefer to sense first and then power the motors to the target, as that is more energy efficient.
I originally tried using an opamp and two photoresistors but photoresistors are too imprecise and non linear. If we are trying to focus the light of a parabolic channel along a pipe that's carrying water, we need accuracy of 4 degrees or so. My proposed array that spans 110 degrees in 30 sensors comes to 3.6 degrees.
Having said that, my real purpose in sharing the project was to demonstrate how to multiplex 64 inputs into one MCU pin. This circuit could be used for many purposes as suggested in the article's introduction. Sampling the sun's position is just one illustration. I'm thinking of refreshing the project using an Arduino so that its general purpose of multiplexing becomes accessible to more people.
Yea I have had the fortune of using MUXes a lot. Some pitfalls if you mux an analog line but they can be predictable. Side not one the stepper. You don't move the whole array in solar with that. You actually move a smaller tracking unit. Once you pinpoint the location of the sun on the horizon you then send a command to the solar array to orient itself to desired location. By tracking the sun this way you can keep the solar array systems on standby, assuming you have some sort of hold mechanism. It is true your system can do the same and for parabolic arrays that works. For towers with a reflector field because the distance between receiver and reflector is much greater it is harder to hit that same target. You can solve this one of two ways. Either track the sun with a tracker to get the location and few photoresistors and a couple of servos or you can increase the number of photoresistors in your project. Yours would most definitely be the most energy efficient option and potentially the least likely to require maintenance. However servos would win on accuracy.
PS: if you refresh your project for the MUXes I would try something new... Maybe do it with an Arduino but say make it to monitor security magnetic switches like the ones used for home security :D
Good suggestions. Picking up on your last paragraph about home security: Why keep polling the sensors and switches constantly? Let's use the energy harvested from a shattered glass or a door being rammed to trigger an interrupt to wake up the entire system that has been asleep. There are devices now that can harvest energy from extremely tiny voltages. They use magnetics and transforming voltages to attain logic level. And we know that logic level voltages are coming down. Therefore, I would not use MUXen (is that plural for MUX? Ox/Oxen -- MUX/MUXen) to monitor windows and doors. To save battery power, I would use energy harvesters to trigger MCU interrupts.
I suppose. U can get mag switches that are normally open when engaged by a magnet. Probably some that gives you the option between normally open or closed. If you switch is open and it closes at a break in then you get interrupt. Maybe some low current gate can then give you interrupt on an open on window strips. Aluminum wire or foil glued to your window to look like decoration is a really good monitor for broken window 1-3 inches from the frame and you are almost guaranteed at least one break. (The circular cut in moves does also get a break more often than not. that only works in movies.) How would you detect which unit is open though? Maybe you can MUX after the interrupt? No idea how to write MUX in plural don't think there is a convention considering it's an abbreviation. Wiki claims its MUXes since multiplex and multiplexes... it's the internet answer who knows lol.
@ervin0072002 In reply to your question of how to identify which unit is open: I envision using Zigbee radios, or probably XBee radios. Each radio has a unique identifier on the Zigbee network. One unit could wake up all the others (of course the Zigbee router unit has to be awake constantly) and identify itself. It can even send a message.
@78RPM. Interesting. One of the home security installations I had a while back with ADT they used RF for the windows that did not have wires connected. With a Lithium battery they claimed that it could operate for 5 years without a battery replacement.
@charly5139 Pointing a collector directly at the sun is more complicated than you assume. Your clock method would work if:
1. The earth were a cylinder. 2. Its axis of rotation is perpendicular (90°) to its orbit. 3. Its orbit is a circle.
None of these is true. Earth is approximately spherical; It is tilted by ~23.5°; Its orbit is elliptical. You can find C programs online for calculating the sun position. It takes about 9 pages of C code.
If you have a parabolic channel and wish to focus the sun along a water pipe, your aim must be less than 3 degrees in error. See http://www.analemma.com/ for a good explanation of the sun's path through the sky.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies.
You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived.
So if you can't attend live, attend at your convenience.