количество нажатий на кнопку
- Войдите на сайт для отправки комментариев
Сб, 24/06/2017 - 15:02
доброе время суток, форумчане. помогите с таким вопросом: есть кнопка и 3 светодиода которые работают как бегущий огонёк, необходимо, что бы при нажатии на кнопку менялась скорость загорания светодиодов. снизу пример кода, куда и как присобачить кнопку не имею понятия
#define LED_OFFSET 3
char counter=0;
void setup()
{
DDRD|=(1<<3)|(1<<4)|(1<<5);
DDRD&=~(1<<7);
}
void loop() {
{
if(counter==4)counter=0;
PORTD&=~((1<<3)|(1<<4)|(1<<5));
PORTD|=(1<<(counter+LED_OFFSET));
counter++;
}
Спросите у автора кода. Писали-то его явно не Вы, а автор знает как кнопки присобачивать.
снизу пример кода, куда и как присобачить кнопку не имею понятия
я бы вообще код переделал
кнопку надо объявить в настройках (в зависимости от типа подключения) и юзать в лупе
вот бредни сумасшедшего
int counter=0; int ledspeed=1000; void setup() { pinMode(2,INPUT);//кнопка на второй вывод digitalWrite(2,HIGH);//включена подтяжка для кнопки pinMode(3,OUTPUT);//светодиод 1 pinMode(4,OUTPUT);//светодиод 2 pinMode(5,OUTPUT);//светодиод 3 Serial.begin(9600); } void loop() { if (digitalRead(2)==LOW) { counter++; } if (counter==1) { Serial.println("the first speed"); Serial.println("delay speed"); Serial.println(ledspeed); led(); } else if (counter==2) { ledspeed=500; Serial.println("the second speed"); Serial.println("delay speed"); Serial.println(ledspeed); led(); } else if (counter==3) { ledspeed=150; Serial.println("the third speed"); Serial.println("delay speed"); Serial.println(ledspeed); led(); } else if (counter==4) { counter=1; ledspeed=1000; Serial.println("the first speed"); Serial.println("delay speed"); Serial.println(ledspeed); led(); } } void led(){ digitalWrite(3,HIGH); Serial.println("1st on"); delay(ledspeed); digitalWrite(3,LOW); Serial.println("1st off"); digitalWrite(4,HIGH); Serial.println("2d on"); delay(ledspeed); digitalWrite(4,LOW); Serial.println("2st off"); digitalWrite(5,HIGH); Serial.println("3rd on"); delay(ledspeed); digitalWrite(5,LOW); Serial.println("3rd off"); }