Солнечная система слежения за Солнцем
Компоненты и расходные материалы
| | × | 1 | |
| Датчик LDR Analog Devices | | × | 1 | |
| Беспаечная макетная плата, полный размер | | × | 1 | |
| | × | 1 | |
| Микро-серводвигатель SG90 | | × | 2 | |
| | × | 1 | |
| | × | 4 | |
Приложения и онлайн-сервисы
Об этом проекте
Кажется, в наши дни нельзя ходить по улице, не наткнувшись на солнечную батарею. Вы можете найти их для мобильной зарядки в сельской местности, а также для простых фонарей на тротуарах. Солнечные батареи просты в использовании, доступны и недороги.
Каждая панель, которую вы видите в повседневной жизни, находится в фиксированном положении. Хотя этот подход чрезвычайно прост и отвечает потребностям большинства небольших приложений, он не производит столько энергии, сколько могло бы быть.
Наш трекер - это трекер с двумя осями , что означает, что он отслеживается как по X, так и по Y. Чтобы выразить это еще более простым языком, он идет влево, вправо, вверх и вниз. Это означает, что после настройки трекера вам больше не нужно будет ничего менять или настраивать, поскольку куда бы ни пошло солнце, трекер будет следовать за ним.
Код
- Солнечная система слежения за Солнцем
Солнечная система слежения за Солнцем Arduino
Это код для отслеживания солнечной системы. / * * Автор:Маюр Рабадия * Электронная почта:[email protected] * Код:Солнечная система отслеживания солнечного света * / # include // библиотека для серводвигателя Servo s; // определение Vertival servoServo sh; // определяем горизонтальный сервопривод int start1 =90; // изначально начиная с 90 градусов int start2 =90; int L1 =A0; // для чтения данных из LDR1 int L2 =A1; // для чтения данных из LDR2int L3 =A2; // для чтения данных из LDR3 int L4 =A3; // для чтения данных из LDR4 int a =15; пустая настройка () {s.attach (9); // подключаем вертикальный сервопривод к выводу 9 Arduino sh.attach (10); // подключаем горизонтальный сервопривод к выводу 10 Arduino pinMode (L1, INPUT); // определяем LDR как вход pinMode (L2, INPUT); pinMode (L3, ВХОД); pinMode (L4, ВХОД); s.write (start1); // он запустит сервопривод с 90, когда мы сбросим систему sh.write (start2); задержка (2000); } пустая петля () {int LDR1 =analogRead (L1); // считываем значение из LDR int LDR2 =analogRead (L2); int LDR3 =аналоговое чтение (L3); int LDR4 =аналоговое чтение (L4); int plus14 =(LDR1 + LDR4); // среднее значение двух углов LDR int plus23 =(LDR2 + LDR3); int plus12 =(LDR1 + LDR2); int plus34 =(LDR3 + LDR4); int diff1 =abs (плюс14 - плюс23); // разница, чтобы принять правильное значение int diff2 =abs (plus23 - plus14); int diff3 =abs (плюс12 - плюс34); int diff4 =abs (плюс34 - плюс12); if ((diff1 <=a) || (diff2 <=a)) {// разница меньше 15, поэтому ничего не делайте} else {if (plus14> plus23) // перемещаем вертикальный сервопривод менее чем на 90 градусов {start2 =- -start2; } если (плюс14 <плюс23) {start2 =++ start2; // перемещаем сервопривод по вертикали более чем на 90 градусов}} if (plus12> plus34) {start1 =--start1; // перемещаем сервопривод по горизонтали менее чем на 90 градусов} if (plus12
Схема