• 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
Drobnostka
#1
Wink 
Serwus, pytanie dość proste dla większości z Was.

Zrobiłem sobie sterowanie czterema przekaźnikami z wyświetlaniem stanu pinów na lcd 4x20 i teraz moje pytanie. Czy zamiast cyfr 0 i 1 można podstawić skróty, np. WLA (włączony) lub WYL (wyłączony)?

Poniżej sketch, pozdrawiam. Smile


Kod:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int przekaznik1 = 8;               //przekaznik1 podłączamy do pinu 8
int przekaznik2 = 9;               //przekaznik2 podłączamy do pinu 9
int przekaznik3 = 10;               //przekaznik1 podłączamy do pinu 10
int przekaznik4 = 11;               //przekaznik2 podłączamy do pinu 11

int przycisk1 = 3;                  //przycisk1 podłączamy do pinu 3
int przycisk2 = 4;                  //przycisk2 podłączamy do pinu 4
int przycisk3 = 5;                  //przycisk1 podłączamy do pinu 5
int przycisk4 = 6;                  //przycisk2 podłączamy do pinu 6

bool sp1 = true;                    //zmienna boolowska sp1 do steowania stanem przekaznika1
bool sp2 = true;                    //zmienna boolowska sp2 do steowania stanem przekaznika2
bool sp3 = true;                    //zmienna boolowska sp3 do steowania stanem przekaznika3
bool sp4 = true;                    //zmienna boolowska sp4 do steowania stanem przekaznika4

void setup()
{
lcd.begin(20, 4);
pinMode(przekaznik1, OUTPUT);       //przekaznik1 jako wyjście
pinMode(przekaznik2, OUTPUT);       //przekaznik2 jako wyjście
pinMode(przekaznik3, OUTPUT);       //przekaznik3 jako wyjście
pinMode(przekaznik4, OUTPUT);       //przekaznik4 jako wyjście
pinMode(przycisk1, INPUT_PULLUP);   //przycisk1 jako wejście z programowym pull-upem
pinMode(przycisk2, INPUT_PULLUP);   //przycisk2 jako wejście z programowym pull-upem
pinMode(przycisk3, INPUT_PULLUP);   //przycisk3 jako wejście z programowym pull-upem
pinMode(przycisk4, INPUT_PULLUP);   //przycisk4 jako wejście z programowym pull-upem

digitalWrite(przekaznik1, HIGH);    //stan początkowy przekaznika1 wysoki
digitalWrite(przekaznik2, HIGH);    //stan początkowy przekaznika2 wysoki
digitalWrite(przekaznik3, HIGH);    //stan początkowy przekaznika3 wysoki
digitalWrite(przekaznik4, HIGH);    //stan początkowy przekaznika4 wysoki

lcd.setCursor (1, 0);
lcd.print("Gor");
lcd.setCursor (2, 1);
lcd.print("0");
lcd.setCursor (6, 0);
lcd.print("Sro");
lcd.setCursor (7, 1);
lcd.print("0");
lcd.setCursor (11, 0);
lcd.print("Dol");
lcd.setCursor (12, 1);
lcd.print("0");
lcd.setCursor (16, 0);
lcd.print("Osw");
lcd.setCursor (17, 1);
lcd.print("0");
}

void loop() {
wlaczniki();
}

void wlaczniki()
{
if(digitalRead(przycisk1) == LOW){delay(150);   //jezeli przycisk1 zostal wcisniety:
sp1=!sp1;                         //zaneguj zmienną sp1
lcd.setCursor (2, 1);
lcd.print(!sp1);
digitalWrite(przekaznik1, sp1);   //stan przekaźnika ustaw taki jak jest stan sp1
delay(150);                       //odczekaj 150ms
}
if(digitalRead(przycisk2) == LOW){delay(150);   //jezeli przycisk2 zostal wcisniety:
sp2=!sp2;                         //zaneguj zmienną sp2
lcd.setCursor (7, 1);
lcd.print(!sp2);
digitalWrite(przekaznik2, sp2);   //stan przekaźnika ustaw taki jak jest stan sp2
delay(150);                       //odczekaj 150ms
}
if(digitalRead(przycisk3) == LOW){delay(150);   //jezeli przycisk3 zostal wcisniety:
sp3=!sp3;                         //zaneguj zmienną sp3
lcd.setCursor (12, 1);
lcd.print(!sp3);
digitalWrite(przekaznik3, sp3);   //stan przekaźnika ustaw taki jak jest stan sp3
delay(150);                       //odczekaj 150ms
}
if(digitalRead(przycisk4) == LOW){delay(150);   //jezeli przycisk4 zostal wcisniety:
sp4=!sp4;                         //zaneguj zmienną sp4
lcd.setCursor (17, 1);
lcd.print(!sp4);
digitalWrite(przekaznik4, sp4);  //stan przekaźnika ustaw taki jak jest stan sp4
delay(150);                       //odczekaj 150ms
}
}
 
#2
mógł byś wstawić schemat połączenia? bardzo spodobał mi się ten projekt chciałbym zrobić taki sam ;-)
 
#3
zamiast tego

lcd.print(!sp4);

daj

if ( sp4 == 0 )lcd.print("on");else lcd.print("off");
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
#4
Cześć. JasQ po raz kolejny dziękuje.

hoody27, niestety, to jest, a właściwie był, fragment większego projektu który rozwiązałem w nieco inny sposób i nie mam do tego schematu, prosta sprawa w sumie, 4 przyciski do pinów 2, 3, 4 i 5, cztery przekaźniki do pinów 8, 9, 10, 11, wyświetlacz pod I2C i testujesz.
 
#5
Ok spoko dzięki za podpowiedź
 
#6
Zamykam. Smile
[Obrazek: Sygnatura1-w60.jpg]
 
  


Skocz do:


Przeglądający: 1 gości