переписать кнопки с цифры на аналог

GOODZM
Offline
Зарегистрирован: 10.05.2019

Имеется программа, в которой необходимо переписать две имеющиеся кнопки под один аналоговый вход.

Стоимость вашей услуги писать сразу.

 

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);
   }
}

 

renoshnik
Offline
Зарегистрирован: 11.04.2013

сделаю.

размер вашей оплаты писать сразу !

vgrigorets
Offline
Зарегистрирован: 14.04.2015

Так тут не скетч переписывать надо, а схему менять...

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014
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);
  }
} 

 

karamzin01
Offline
Зарегистрирован: 08.03.2018

Р е а л и з у е м о - maslachenko767@mail.ru

Green
Offline
Зарегистрирован: 01.10.2015

Что то тестирование затянулось, не?

vvadim
Offline
Зарегистрирован: 23.05.2012

ждут реализации карамзиным))))))