Как складывать ?
- Войдите на сайт для отправки комментариев
Пт, 30/09/2016 - 23:42
С энкодера бесконечным потоком идёт 0 или 1(в зависимости от его положения) ,а мне необходимо считать количество переходов от 1 к 0.
Вот код который не хочет складывать
В чем проблема ?
Я новичок в этом деле так что ...
int enk =5;
int x;
void setup() {
Serial.begin(9600);
}
void loop() {
if (enk == HIGH && digitalRead(enk) == LOW)
{ x == x+1; }
Serial.println(digitalRead(enk));
Serial.println(x);
delay (1000);
}
Достаточно
while(digitalRead(enk)==0);
while(digitalRead(enk)==1);
Спасибо за помощь
Хочу научить робота поварачивать на 90 градусов поставив на колеса энкодеры
Подавая питание на колеса пока не наберется определенное количество сигналов с энкодера
не? (для нубов: enc и old_enc имеют тип bool и находятся снаружи функции, т. о. глобальные)
не? (для нубов: enc и old_enc имеют тип bool и находятся снаружи функции, т. о. глобальные)
ять!
Тогда так
x=0;
digitalWrite(motorpin,HIGH);//Включить мотор
while(x < N)
{ // ждём енкодер N тиков
while(digitalRead(enk)==0);
while(digitalRead(enk)==1);
x++; };
digitalWrite(motorpin,LOW) //Выключить мотор
{ x == x+1; }
надо заменить на
{ x = x+1; }
А почему бы вам не начать с поиска? На форуме есть шикарная тема про енкодер с примерами, проблемами и их решениями.
А почему бы вам не начать с поиска? На форуме есть шикарная тема про енкодер с примерами, проблемами и их решениями.
я запретил.
x+=1;
???!
x++;
опять велосипед городите...
не проще ли внешнее прерывание использовать? в функции прерывания увеличивать переменную.