pev » 23 дек 2016 21:45
Ну где то так, за достоверность не ручаюсь...
// пины расписаны от балды
// число прибавляемое к х нужно прикинуть, двойку поставил от балды, может будет мало в реале
// переменнику на ось вешаем эксцентрик и устанавливаем в среднее положение
// при движении вперед напряжение на среднем выводе должно увеличиваться, при торможении уменьшаться
#define greenled 8
#define redled 9
#define blueled 10
#define pot A0
void setup(){
pinMode(greenled, OUTPUT); // пин со светодиодом зеленым — выход (ускорение)
pinMode(redled, OUTPUT); // пин со светодиодом красным — выход (торможение)
pinMode(blueled, OUTPUT); // пин со светодиодом синий — выход (стоим на месте)
pinMode(pot, INPUT); // пин с потенциометром - вход
digitalWrite(redled, LOW); // гасим светодиод
digitalWrite(greenled, LOW); // гасим светодиод
digitalWrite(blueled, LOW); // гасим светодиод
}
void loop(){
int x; int y; // объявляем переменную x и y
// считываем напряжение с потенциометра:
// будет получено число от 0 до 1023
// делим его на 4, получится число в диапозоне
// 0-255 (дробная часть будет отброшена)
x = analogRead(pot) / 4;
y=x;
delay(100); // задержка между считываниями для стабильности работы
x = analogRead(pot) / 4;
if (x > y+2){
digitalWrite(greenled, HIGH); // зажигаем зеленый светодиод "ускорение"
}
else if (x < y-2){
digitalWrite(redled, HIGH); // зажигаем крсный светодиод "торможение"
}
else{
digitalWrite(blueled, HIGH); // зажигаем синий светодиод "стоим на месте"
}
delay(1); // задержка между считываниями для стабильности работы
}
Последний раз редактировалось
pev 24 дек 2016 10:24, всего редактировалось 1 раз.
Никогда не езди быстрее, чем может летать твой ангел-хранитель.