Нужна помощь.
- Войдите на сайт для отправки комментариев
Ср, 12/08/2020 - 12:09
#include<AccelStepper.h> #define PIN_PHOTO_SENSOR A0 #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 AccelStepper s28BYJ48(8, IN1, IN3, IN2, IN4); int timer; int timer1; void setup() { Serial.begin(9600); s28BYJ48.setMaxSpeed(6000); //Настройки двигателя s28BYJ48.setAcceleration(1000); s28BYJ48.setSpeed(1000); } void loop() { int val = analogRead(PIN_PHOTO_SENSOR); // Переменная, которя хранит уровень освещённости if (val > 500){ timer=millis(); // Запоминаем сремя, которое прошло с запуска for ( ; ; ){ val = analogRead(PIN_PHOTO_SENSOR); if (millis() - timer > 3000){ // Если 3 секунды нет света, то крутим моторчик s28BYJ48.moveTo(2000); s28BYJ48.run();} if (val < 500){ // Если свет появился, то сбрасываем таймер timer1 = millis(); break; } } } if (val < 500){ timer1=millis(); for ( ; ; ){ val = analogRead(PIN_PHOTO_SENSOR); if (millis() - timer1 > 3000){ s28BYJ48.moveTo(-2000); s28BYJ48.run();} if (val > 500){ timer = millis(); break; } } } s28BYJ48.run(); }
Суть в том, что после где-то 5 нормальных циклов двигатель начинает крутится без учета таймера. Т.е. как только на резистор попадает или исчезает свет.
Суть в том, что после где-то 5 нормальных циклов
Рискну предположить, что дело не 5 циклах, а в 33 секундах работы.
Приведите типы переменных timer и timer1 в соответствие с их использованием (т.е. если Вы присваиваете им millis(), то сделайте, чтобы их тип соответствовал тому, что присваивается).
DEL
Немного не понял. Мне стоит использовать long или вы говорите о чём-то другом?
Не long, а похлеще.
Не long, а похлеще.
Например?
Попробую делить millis() на 1000 и тем самым записывать кол-во секунд, а не милисекунд.
Немного не понял. Мне стоит использовать long или вы говорите о чём-то другом?
Вы в строка №№ 31, 38, 44 и 51 этим переменным присваиваете значение millis(). Так или нет?
Вам стоит использовать для них тот же самый тип, который возвращает millis.
ТС, для таких как ты , люди старались описание команд/функций писали, а ты сразу на форум....
Читай:http://arduino.ru/Reference/Millis
Не long, а похлеще.
А вообще красиво звучит! Unsigned long - это как сгущенка, только сама банку открывает и в рот льётся. (Люблю сгущенку с детства, кстати, тогда она была вкуснее (да и я моложе на много лет)).