переписать кнопки с цифры на аналог
- Войдите на сайт для отправки комментариев
Ср, 15/05/2019 - 14:00
Имеется программа, в которой необходимо переписать две имеющиеся кнопки под один аналоговый вход.
Стоимость вашей услуги писать сразу.
const int green=8;
const int green1=7;
const int green2=6;
const int green3=5;
const int red=13;
const int red1=12;
const int red2=11;
const int red3=10;
const int BUTTON=2;
const int BUTTON1=3;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledMode = 0;
void setup()
{
pinMode (green, OUTPUT);
pinMode (green1, OUTPUT);
pinMode (green2, OUTPUT);
pinMode (green3, OUTPUT);
pinMode (red, OUTPUT);
pinMode (red1, OUTPUT);
pinMode (red2, OUTPUT);
pinMode (red3, OUTPUT);
pinMode (BUTTON, INPUT);
pinMode (BUTTON1, INPUT);
}
void loop()
{
int c;
for(;;)
{
if(digitalRead (BUTTON) == HIGH)
{
c=gg(BUTTON);
setMode(c,green,green1,red,red1);
}
if(digitalRead (BUTTON1) == HIGH)
{
c=gg(BUTTON1);
setMode(c,green2,green3,red2,red3);
}
}
}
int gg(int BUTTONX)
{
currentButton = debounce(lastButton,BUTTONX);
if (lastButton == LOW && currentButton == HIGH)
{
ledMode++;
}
lastButton = currentButton;
if (ledMode == 3) ledMode = 1;
return(ledMode);
}
boolean debounce(boolean last,int BUTTONX)
{
boolean current = digitalRead(BUTTONX);
if (last != current)
{
delay(5);
current = digitalRead(BUTTONX);
}
return current;
}
void setMode(int mode,int svet,int svet1,int svet2,int svet3)
{
if (mode == 1)
{
digitalWrite(svet,LOW);
digitalWrite(svet1,LOW);
digitalWrite(svet2, HIGH);
delay(1000);
digitalWrite(svet3, HIGH);
}
else if (mode == 2)
{
digitalWrite(svet2,LOW);
digitalWrite(svet3,LOW);
digitalWrite(svet, HIGH);
delay(1000);
digitalWrite(svet1,HIGH);
}
}
сделаю.
размер вашей оплаты писать сразу !
Так тут не скетч переписывать надо, а схему менять...
const int green=8; const int green1=7; const int green2=6; const int green3=5; const int red=13; const int red1=12; const int red2=11; const int red3=10; void setMode(int mode,int svet,int svet1,int svet2,int svet3) { if (mode == 1) { digitalWrite(svet,LOW); digitalWrite(svet1,LOW); digitalWrite(svet2, HIGH); delay(1000); digitalWrite(svet3, HIGH); } else if (mode == 2) { digitalWrite(svet2,LOW); digitalWrite(svet3,LOW); digitalWrite(svet, HIGH); delay(1000); digitalWrite(svet1,HIGH); } } // ногу A0 подтянуть к +5 через резистор 5,1к // первую кнопку подключить напрямую к ноге A0 и земле // вторую кнопку подключить к ноге A0 через резистор 5,1к и к земле void setup() { pinMode (green, OUTPUT); pinMode (green1, OUTPUT); pinMode (green2, OUTPUT); pinMode (green3, OUTPUT); pinMode (red, OUTPUT); pinMode (red1, OUTPUT); pinMode (red2, OUTPUT); pinMode (red3, OUTPUT); } void loop() { uint16_t adc=analogRead(A0); if(adc<100){ setMode(1,green,green1,red,red1); } else if(adc<750){ setMode(2,green2,green3,red2,red3); } }Р е а л и з у е м о - maslachenko767@mail.ru
Что то тестирование затянулось, не?
ждут реализации карамзиным))))))