• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Oświetlenie Bluetooth POMOCY
#1
Witam. Jest to mój pierwszy post na forum więc proszę o wyrozumiałość. Robię sobie oświetlenie w pokoju. Mam zrobiony  układ oświetlenia z wykorzystaniem arduino, przekaźników i modułu bluetooth. Aplikacje na telefon mam zrobioną ze strony MIT App Inventor. Pod spodem dodaje filmik, kod i profesjonalny szkic układu(wykonany w najlepszym  programie graficznym Paint), screen aplikacji i układ oświetlenia ( Cztery podwójne rzędy halogenów).Wszystko działa jak ta lala. Po prostu gra i buczy. Tylko jest taki problem że te oświetlenie będzie uzależnione od telefonu. A chciałbym żeby był też normalny podwójny wyłącznik na ścianie. Który by włączał 4 + 4 halogeny. I przejdźmy teraz do sedna. 
Moje pytanie brzmi jak mam to podłączyć pod arduino i jak musiał by wyglądać kod. Z góry dziękuję za pomoc. 

Kod:
int led1 = A0;
int led2= A1;
int led3=A2;
int led4=A3;
int state;

void setup() {                
  
  pinMode (led1, OUTPUT);    
  pinMode (led2, OUTPUT); 
  pinMode (led3, OUTPUT);
  pinMode (led4, OUTPUT);
  
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH); 
  
  Serial.begin(9600);
}

void loop() {
  if(Serial.available() > 0){     
      state = Serial.read();}

  if (state == '1') {
      digitalWrite(led1, HIGH);
      digitalWrite(led2, HIGH);
      digitalWrite(led3, HIGH);
      digitalWrite(led4, HIGH);}  
 
  else if (state == '2') {
      digitalWrite(led1, LOW);  
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);}
       


      if (state == '3') {
      digitalWrite(led2, HIGH); 
      digitalWrite(led3, HIGH);}  
 
  else if (state == '4') {
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);}

     
        if (state == '5') {
      digitalWrite(led1, HIGH);
      digitalWrite(led4, HIGH); }
         
 
  else if (state == '6') {
      digitalWrite(led1, LOW);
      digitalWrite(led4, LOW);}
 
        if (state == '7') {
      digitalWrite(led1, HIGH);
      digitalWrite(led2, HIGH); }
         
 
  else if (state == '8') {
      digitalWrite(led1, LOW);
      digitalWrite(led2, LOW);}

          if (state == '9') {
      digitalWrite(led3, HIGH);
      digitalWrite(led4, HIGH); }
         
 
  else if (state == 'A') {
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);}

        if (state == 'B') {
      digitalWrite(led1, HIGH);}
       
  else if (state == 'C') {
      digitalWrite(led1, LOW);}

         if (state == 'D') {
      digitalWrite(led2, HIGH);}
       
  else if (state == 'E') {
      digitalWrite(led2, LOW);}

         if (state == 'F') {
      digitalWrite(led3, HIGH);}
       
  else if (state == 'G') {
      digitalWrite(led3, LOW);}

         if (state == 'H') {
      digitalWrite(led4, HIGH);}
       
  else if (state == 'I') {
      digitalWrite(led4, LOW);}
              
  
 }

http://pl.tinypic.com/r/15yvi9t/9

https://www.youtube.com/watch?v=ShzLcCT6Kus
 
#2
(12-11-2016, 00:21)conagher19 napisał(a):
Kod:
int state;


  if (state == '1') {

Nie znam się zbytnio Wink, ale chyba zmienna int to liczba, a '1' to tekst.
Napisz 1 a nie '1' ( i tak do 18 bez '') powinno być ok.
 
#3
(12-11-2016, 00:21)conagher19 napisał(a): chciałbym żeby był też normalny podwójny wyłącznik na ścianie. Który by włączał 4 + 4 halogeny. I przejdźmy teraz do sedna. 
Moje pytanie brzmi jak mam to podłączyć pod arduino i jak musiał by wyglądać kod. Z góry dziękuję za pomoc.
Jeśli Cię dobrze zrozumiałem, chcesz żeby podwójny włącznik robił to samo, co przyciski Włącz/Wyłącz 4L/4P. Nawet jeśli się pomyliłem, to zmiana kodu przez Ciebie będzie kosmetyczna. Musisz wybrać, które piny (cyfrowe) wykorzystasz do przycisków (dwie sztuki lub jeden podwójny). Załóżmy, że wykorzystasz piny cyfrowe 5 i 6. Wyłączniki podłączasz jednym pinem do Arduino, drugim do GND.
Kod:
int led1 = A0;
int led2= A1;
int led3=A2;
int led4=A3;
int przycisk1 = 5;
int przycisk2 = 6;
int state;

void setup() {                
  
  pinMode (led1, OUTPUT);    
  pinMode (led2, OUTPUT); 
  pinMode (led3, OUTPUT);
  pinMode (led4, OUTPUT);
  pinMode(przycisk1, INPUT_PULLUP);
 pinMode(przycisk2, INPUT_PULLUP);

  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH); 
  
  Serial.begin(9600);
}

void loop() {
  if(Serial.available() > 0){     
      state = Serial.read();}

  if (state == '1') {
      digitalWrite(led1, HIGH);
      digitalWrite(led2, HIGH);
      digitalWrite(led3, HIGH);
      digitalWrite(led4, HIGH);}  
 
  else if (state == '2') {
      digitalWrite(led1, LOW);  
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);}
       


      if (state == '3') {
      digitalWrite(led2, HIGH); 
      digitalWrite(led3, HIGH);}  
 
  else if (state == '4') {
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);}

     
        if (state == '5') {
      digitalWrite(led1, HIGH);
      digitalWrite(led4, HIGH); }
         
 
  else if (state == '6') {
      digitalWrite(led1, LOW);
      digitalWrite(led4, LOW);}
 
        if ((state == '7') OR (digitalRead(przycisk1)==LOW)) {
      digitalWrite(led1, HIGH);
      digitalWrite(led2, HIGH); }
         
 
  else if ((state == '8') OR (digitalRead(przycisk1)==HIGH)) {
      digitalWrite(led1, LOW);
      digitalWrite(led2, LOW);}

          if ((state == '9') OR (digitalRead(przycisk2)==LOW)) {
      digitalWrite(led3, HIGH);
      digitalWrite(led4, HIGH); }
         
 
  else if ((state == 'A') OR (digitalRead(przycisk2)==HIGH)) {
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);}

        if (state == 'B') {
      digitalWrite(led1, HIGH);}
       
  else if (state == 'C') {
      digitalWrite(led1, LOW);}

         if (state == 'D') {
      digitalWrite(led2, HIGH);}
       
  else if (state == 'E') {
      digitalWrite(led2, LOW);}

         if (state == 'F') {
      digitalWrite(led3, HIGH);}
       
  else if (state == 'G') {
      digitalWrite(led3, LOW);}

         if (state == 'H') {
      digitalWrite(led4, HIGH);}
       
  else if (state == 'I') {
      digitalWrite(led4, LOW);}
              
  
 }

Myślę że to ma szansę zadziałać Smile
 
#4
Do krn78 działa ale połowicznie. Bo po wpisaniu tego kodu co Pan podał przestały działać przyciski. Włącz1 ,Włącz2 ,Włącz3 ,Włącz4.  Głównie chodzi mi o to bo może źle to napisałem w poprzednim poście żeby te dwa przyciski działały jak włącznik schodowy (a właściwie przełącznik schodowy podwójny taki jak na ścianie)  że jak włączę telefonem to mogę wyłączyć tym na ścianie i na odwrót. Tylko że z telefonu mam różne kombinację włączania i wyłączania. A ten na ścianie miał by jednym przyciskiem włączać lewą stronę a drugi włączać drugą stronę(4L i 4P).
 
#5
Jeśli ma działać jak przełącznik schodowy, to powinien niejako odwracać stan halogenów. Dla przykładu: jeśli wyłączona jest lewa strona, po wciśnięciu przycisku zostanie włączona, czy tak? A co jeśli stan przekaźników będzie np. 10? Czy po wciśnięciu przycisku ma zmienić się na 01?
 
#6
Dziękuje za pomoc ale problem rozwiązałem w inny sposób. Do przekaźników podłączyłem przełączniki schodowe (bo przekaźnik i przełącznik schodowy działają na tej samej zasadzie) i problem się rozwiązał. Teraz mogę włączać włącznikiem na ścianie i wyłączyć telefonem i na odwrót. Dzięki za pomoc. Temat zakończony.
 
#7
zamykam .
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
  


Skocz do:


Przeglądający: 1 gości