Я занимаюсь разработкой своего проекта по совершенствованию системы слежения за солнечными батареями для солнечных панелей с использованием Arduino Uno, используя два микро сервопривода для двойной системы, одну для горизонтальной и одну для вертикальной, на основе фоторезиторов, излучающих источник света. Однако во время контролируемого теста сервоприводы, кажется, реагируют всего за несколько секунд, а затем перестают отвечать на все запросы, заставляя меня перезапускать Arduino, и, кажется, зависают, когда сервоприводы находятся под нагрузкой. Если у вас есть какие-либо советы или решения для этой проблемы, которые застряли на некоторое время, я был бы признателен. вот картинка моей схемы на TinkerCad и код Большое спасибо. :)
ОБНОВЛЕНИЕ: Привет, может кто-нибудь, пожалуйста, помогите мне с этой проблемой, проблема застряла с этой проблемой в течение более 3 недель, что очень расстраивает меня, потому что у меня есть крайний срок на моем назначении очень скоро и хотел бы улучшить в других областях, но не может продолжаться без устранения этой проблемы. Я уже проверил код с помощью отладчика, но у меня нет такого опыта для решения этой проблемы. Я был бы признателен, если кто-нибудь может дать мне идею или поддержать меня с этой проблемой большое спасибо.
Код
#include <Servo.h>
Servo sg901;
Servo sg902;
void setup()
{
Serial.begin(9600);
sg901.attach(8); // attaches the servo on pin 8 to the sg901
sg902.attach(7); // attaches the servo on pin 7 to the sg902
delay(2000); // a 2 seconds delay while we position the solar panel
}
void loop()
{
int lightValue = analogRead(A0);
int lightValue1 = analogRead(A1);
int lightValue2= analogRead(A2);
int lightValue3= analogRead(A3);
Serial.println(lightValue,lightValue1);
if (lightValue>lightValue1)
{
lightValue= map (lightValue,0,1023,90,180);
Serial.print(lightValue);
sg901.write(lightValue);
}
if (lightValue1>lightValue)
{
lightValue1= map (lightValue1,0,1023,90,180);
Serial.print(lightValue1);
sg901.write(lightValue1);
}
Serial.print(lightValue2,lightValue1);
if (lightValue2>lightValue1)
{
lightValue2= map (lightValue2,0,1023,90,180);
Serial.print(lightValue2);
sg902.write(lightValue2);
}
Serial.print(lightValue3,lightValue2);
if (lightValue3>lightValue2)
lightValue= map(lightValue3,0,1023,90,180);
Serial.print(lightValue3);
sg902.write (lightValue3);
Serial.println(lightValue);
Serial.println(lightValue1);
Serial.println(lightValue2);
Serial.println(lightValue3);
Схема введите описание изображения здесь