Нужна помощь.
- Войдите на сайт для отправки комментариев
Ср, 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 - это как сгущенка, только сама банку открывает и в рот льётся. (Люблю сгущенку с детства, кстати, тогда она была вкуснее (да и я моложе на много лет)).