Arduino buton ile RGB LED yönetme

Prisvx.q

Hectopat
Katılım
20 Ocak 2021
Mesajlar
280
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Aşağıdaki gibi devre şeması. Kod yazamadım bir türlü. İstediğim şey şu. Sadece mesela 1. butona bastığımda kırmızı 2. de mavi 3. de sarı. Diyelim ki sonra 1. ve 2. ye basıldığında o renklerin karışımı. Eğer hepsine basılırsa da beyaz çıksın istiyorum.

1697128175694.png
 
Kod:
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int redLedPin = 9;  
const int greenLedPin = 10;
const int blueLedPin = 11;

int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;

void setup() {
 
 
pinMode(buttonPin1, INPUT);
 
  pinMode

 
pinMode(buttonPin2, INPUT);
 
 
pinMode(buttonPin3, INPUT);
 
 
pinMode(redLedPin, OUTPUT);
 
  pinMode

 
pinMode(greenLedPin, OUTPUT);
  pinMode(blueLedPin, OUTPUT);
}

void loop() {
 
 

  buttonState1 =
  buttonState1 = digitalRead

  buttonState1 = digital

  button

 
digitalRead(buttonPin1);
  if (buttonState1 == HIGH) {
   
    digitalWrite
digitalWrite(redLedPin, HIGH);
  }
  }

 
else {
    digitalWrite(redLedPin, LOW);
  }

 
  }

 

 

  buttonState2 =
  buttonState2 =

  buttonState

 
digitalRead(buttonPin2);
 
 
if (buttonState2 == HIGH) {
   

   
    digitalWrite

 
digitalWrite(greenLedPin, HIGH);
  }
  }
else {
   
    digitalWrite

 
digitalWrite(greenLedPin, LOW);
  }

 
  }

 

  buttonState3 =
  buttonState3 = digitalRead

  buttonState3 =

 
digitalRead(buttonPin3);
  if (buttonState3 == HIGH) {

 
digitalWrite(blueLedPin, HIGH);
  }
 
else {
    digitalWrite(blueLedPin, LOW);
  }

 
 
 
if (buttonState1 == HIGH && buttonState2 == HIGH) {
   
 

   
    digitalWrite
digitalWrite(redLedPin, HIGH);
   
 
digitalWrite(greenLedPin, HIGH);
  }

 
  }

 

  }


 
if (buttonState1 == HIGH && buttonState3 == HIGH) {
 
   
 
digitalWrite(redLedPin, HIGH);
   
    digitalWrite
digitalWrite(blueLedPin, HIGH);
  }

 
  }

if (buttonState2 == HIGH && buttonState3 == HIGH) {
   
 

    digitalWrite(greenLedPin, HIGH);
   
    digitalWrite
digitalWrite(blueLedPin, HIGH);
  }

 
  }

 
if (buttonState1 == HIGH && buttonState2 == HIGH && buttonState3 == HIGH) {
   
 

   
    digitalWrite

 
digitalWrite(redLedPin, HIGH);
    digitalWrite(greenLedPin, HIGH);
    digitalWrite(blueLedPin, HIGH);
  }
}

  }
}


  }
}
 
Kod:
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int redLedPin = 9;
const int greenLedPin = 10;
const int blueLedPin = 11;

int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;

void setup() {

pinMode(buttonPin1, INPUT);

 pinMode

pinMode(buttonPin2, INPUT);

pinMode(buttonPin3, INPUT);

pinMode(redLedPin, OUTPUT);

 pinMode

pinMode(greenLedPin, OUTPUT);
 pinMode(blueLedPin, OUTPUT);
}

void loop() {

 buttonState1 =
 buttonState1 = digitalRead

 buttonState1 = digital

 button

digitalRead(buttonPin1);
 if (buttonState1 == HIGH) {

 digitalWrite
digitalWrite(redLedPin, HIGH);
 }
 }

else {
 digitalWrite(redLedPin, LOW);
 }

 }

 buttonState2 =
 buttonState2 =

 buttonState

digitalRead(buttonPin2);

if (buttonState2 == HIGH) {

 digitalWrite

digitalWrite(greenLedPin, HIGH);
 }
 }
else {

 digitalWrite

digitalWrite(greenLedPin, LOW);
 }

 }

 buttonState3 =
 buttonState3 = digitalRead

 buttonState3 =

digitalRead(buttonPin3);
 if (buttonState3 == HIGH) {

digitalWrite(blueLedPin, HIGH);
 }

else {
 digitalWrite(blueLedPin, LOW);
 }

if (buttonState1 == HIGH && buttonState2 == HIGH) {

 digitalWrite
digitalWrite(redLedPin, HIGH);

digitalWrite(greenLedPin, HIGH);
 }

 }

 }

if (buttonState1 == HIGH && buttonState3 == HIGH) {

digitalWrite(redLedPin, HIGH);

 digitalWrite
digitalWrite(blueLedPin, HIGH);
 }

 }

if (buttonState2 == HIGH && buttonState3 == HIGH) {

 digitalWrite(greenLedPin, HIGH);

 digitalWrite
digitalWrite(blueLedPin, HIGH);
 }

 }

if (buttonState1 == HIGH && buttonState2 == HIGH && buttonState3 == HIGH) {

 digitalWrite

digitalWrite(redLedPin, HIGH);
 digitalWrite(greenLedPin, HIGH);
 digitalWrite(blueLedPin, HIGH);
 }
}

 }
}

 }
}

Else {
^~~~
C:\Users\Enes\AppData\Local\Temp\7zO87996619\2pinbuton\2pinbuton.ino:61:3: error: Expected declaration before '}' token
}
^

Exit status 1

Compilation error: Expected ';' before 'pinMode'
 
Else {
^~~~
C:\Users\Enes\AppData\Local\Temp\7zO87996619\2pinbuton\2pinbuton.ino:61:3: error: Expected declaration before '}' token.
}
^

Exit status 1

Compilation error: Expected ';' before 'pinmode'.

Ben de onu diyecektim kod hatalarla dolu.

C++:
#define RED 2
#define BLUE 3
#define GREEN 4
#define BUT_R 5
#define BUT_G 6
#define BUT_B 7

boolean lr_state;
boolean lg_state;
boolean lb_state;

void setup()
{
 pinMode(RED, OUTPUT);
 pinMode(BLUE, OUTPUT);
 pinMode(GREEN, OUTPUT);

 pinMode(BUT_R, INPUT);
 pinMode(BUT_G, INPUT);
 pinMode(BUT_B, INPUT);

}

void loop()
{
 if (digitalRead(BUT_R) == 1)
 {
 lr_state = !(lr_state);

 while (digitalRead(BUT_R) == 1)
 delay(100);
 }

 else if (digitalRead(BUT_G) == 1)
 {
 lg_state = !(lg_state);

 while (digitalRead(BUT_G) == 1)
 delay(100);
 }

 else if (digitalRead(BUT_B) == 1)
 {
 lb_state = !(lb_state);

 while (digitalRead(BUT_B) == 1)
 delay(100);
 }

 digitalWrite(RED, lr_state);

 digitalWrite(GREEN, lg_state);

 digitalWrite(BLUE, lb_state);

}

Kodda pinleri kafama göre verdim.

Kod basit, bir buton sadece bir LED kontrol ediyor, hepsi için üç butona da sırasıyla bir kere basmak yeterli.

Basılan butona tekrar basılırsa LED söner.

Kodu deneme şansım olmadı o yüzden hata olursa söyleyin.

Not: Pulldown dirençlerini unutmayın.
 
Son düzenleme:

Yeni konular

Geri
Yukarı