Ви не увійшли.
Сторінки 1
Хочу сделать электрику мотоцикла полностью управляемой ардуино, я новичок в этом деле, помогите с поворотами, нужно чтобы при нажатии кнопки мигал светодиод (к примеру) пока не будет нажата кнопка еще раз, сложность (для меня) в том что код большой, много функций, и нужно чтобы одно не мешало другому, то есть один большой скетч, из множества маленьких (независимых)
если кому не сложно, киньте пример как это можно сделать....
Неактивний
#define LED 13
#define BUTTON 2
int val = 0;
int old_val = 0;
int state = 0;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop()
{
val = digitalRead(BUTTON);
if ((val == HIGH) && (old_val == LOW))
{
state = 1 - state;
}
old_val = val;
if (state == 1)
{
digitalWrite(LED, millis()%2000 < 100);
}
else
{
digitalWrite(LED, LOW);
}
}
Неактивний
#define LED 13
#define BUTTON 2
int val = 0;
int old_val = 0;
int state = 0;void setup()
{
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop()
{
val = digitalRead(BUTTON);
if ((val == HIGH) && (old_val == LOW))
{
state = 1 - state;
}
old_val = val;
if (state == 1)
{
digitalWrite(LED, millis()%2000 < 100);
}
else
{
digitalWrite(LED, LOW);
}
}
тут при нажатии и удерживании мигает а при отпускании гаснет, а как сделать чтобы при одном нажатии мигало, а при повторном нажатии гасло? что-то не могу разобраться(
Неактивний
Вот только не могу понять чем вам реле поворотов не помогает - просто поменяли лампочку на ленту и делов то!
int switchPin1 = 11;
int ledPin1 = 12;
int switchPin2 = 8;
int ledPin2 = 9;
boolean lastButton1 = LOW;
boolean ledOn1 = false;
boolean currentButton1 = LOW;
boolean lastButton2 = LOW;
boolean ledOn2 = false;
boolean currentButton2 = LOW;
//----------------------------------------
void setup()
{
pinMode(switchPin1, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(switchPin2, INPUT);
pinMode(ledPin2, OUTPUT);
}
//----------------------------------------
boolean debounce(boolean last , int switchP)
{
boolean current = digitalRead(switchP);
if (last != current)
{
delay(5);
current = digitalRead(switchP);
}
return current;
}
//--------------------------------------------
void loop()
{
currentButton1 = debounce(lastButton1, switchPin1);
currentButton2 = debounce(lastButton2, switchPin2);
if (lastButton1 == LOW && currentButton1 == HIGH) ledOn1 = !ledOn1;
if (lastButton2 == LOW && currentButton2 == HIGH) ledOn2 = !ledOn2;
lastButton1 = currentButton1;
lastButton2 = currentButton2;
digitalWrite(ledPin1, ledOn1);
digitalWrite(ledPin2, ledOn2);
}
Неактивний
Сторінки 1