Skocz do zawartości

Program graficzny do Arduino


Zakrzewiaczek

Pomocna odpowiedź

Mam pytanie,

czy jest program, dzięki któremu zrobię np. przycisk (wirtualny), podłącze go do arduino i będę mógł

sterować np. diodą? Chciałbym podłączyć semafory do takiego programu. (Czy działał by on z 2 Arduino?)

 

Oto program:

#define ziel 9
#define pom_1 10
#define czer 11
#define pom_2 2
#define bial 13
unsigned long aktualnyCzas = 0;
unsigned long zapamietanyCzas = 0;
unsigned long roznicaCzasu = 0;

String odb = "";

bool s3 = false;
bool s4 = false;
bool sz = false;

bool zapal = false;

void setup() {
  // put your setup code here, to run once:
  pinMode(ziel, OUTPUT);
  pinMode(pom_1, OUTPUT);
  pinMode(czer, OUTPUT);
  pinMode(pom_2, OUTPUT);
  pinMode(bial, OUTPUT);

  digitalWrite(czer, HIGH);

  Serial.begin(9600);
}

void loop() 
{
  if(Serial.available() > 0) { //Czy Arduino odebrało dane
    odb = Serial.readStringUntil('\n'); 
    spr();
  }

  aktualnyCzas = millis();
  roznicaCzasu = aktualnyCzas - zapamietanyCzas;
  
  if(roznicaCzasu >= 500UL)
  {  
    zapal = !zapal;
    zapamietanyCzas = aktualnyCzas;
  }

  if(s3  && zapal)
  {
    digitalWrite(ziel, HIGH);
  }
  else if (s3 && zapal == false)
  {
    digitalWrite(ziel, LOW);
  }

  if(s4  && zapal)
  {
    digitalWrite(pom_1, HIGH);
  }
  else if (s4 && zapal == false)
  {
    digitalWrite(pom_1, LOW);
  }

  if(sz  && zapal)
  {
    digitalWrite(bial, HIGH);
  }
  else if (sz && zapal == false)
  {
    digitalWrite(bial, LOW);
  }
}

void spr()
{
  
  if(odb == "CLS" || odb == "cls")
  {
    czysc();
    Serial.println("Usypiam semafor");
  }
  else if(odb == "SZ" || odb == "sz" || odb == "Sz")
  {
    czysc();
    Sz();
    Serial.println("Ustawiam sygnał Sz");

    s3 = false;
    s4 = false;
    sz = true;
  }
  else if(odb == "MS1" || odb == "Ms1" || odb == "ms1")
  {
    czysc();
    Ms1();
    Serial.println("Ustawiam sygnał Ms1");

    s3 = false;
    s4 = false;
    sz = false;
  }
  else if(odb == "S1" || odb == "s1")
  {
    czysc();
    S1();
    Serial.println("Ustawiam sygnał S1");

    s3 = false;
    s4 = false;
    sz = false;
  }
  else if(odb == "S2" || odb == "s2")
  
  {
    czysc();
    S2();
    Serial.println("Ustawiam sygnał S2");

    s3 = false;
    s4 = false;
    sz = false;
  }
  else if(odb == "S3" || odb == "s3")
  {
    czysc();
    S3();
    Serial.println("Ustawiam sygnał S3");

    s3 = true;
    s4 = false;
    sz = false;
  }
  else if(odb == "S4" || odb == "s4")
  {
    czysc();
    S4();
    Serial.println("Ustawiam sygnał S4");

    s3 = false;
    s4 = true;
    sz = false;

  }
  else if(odb == "S5" || odb == "s5")
  {
    czysc();
    S5();
    Serial.println("Ustawiam sygnał S5");

    s3 = false;
    s4 = false;
    sz = false;
  }
  else if(odb == "S10" || odb == "s10")
  {
    czysc();
    S10();
    Serial.println("Ustawiam sygnał S10");

    s3 = false;
    s4 = false;
    sz = false;
  }
  else if(odb == "S11" || odb == "s11")
  {
    czysc();
    S11();
    Serial.println("Ustawiam sygnał S11");

    s3 = true;
    s4 = false;
    sz = false;
  }
  else if(odb == "S12" || odb == "s12")
  {
    czysc();
    S12();
    Serial.println("Ustawiam sygnał S12");

    s3 = false;
    s4 = true;
    sz = false;
  }
  else if(odb == "S13" || odb == "s13")
  {
    czysc();
    S13();
    Serial.println("Ustawiam sygnał S13");

    s3 = false;
    s4 = false;
    sz = false;
  }
  else
  {
    Serial.println("Niepoprawny sygnał.");
  }
}

void czysc()
{
  s3 = false;
  s4 = false;
  
  digitalWrite(czer, LOW);
  digitalWrite(pom_1, LOW);
  digitalWrite(ziel, LOW);
  digitalWrite(pom_2, LOW);
  digitalWrite(bial, LOW);
}

void Ms1()
{
  digitalWrite(bial, HIGH);
}

void Sz()
{
  digitalWrite(czer, HIGH);
  digitalWrite(bial, HIGH);
}

void S1()
{
  digitalWrite(czer, HIGH);
}

void S2()
{
  digitalWrite(ziel, HIGH);
}

void S3()
{
  digitalWrite(ziel, HIGH);
  
}
void S4()
{
  digitalWrite(pom_1, HIGH);
}

void S5()
{
  digitalWrite(pom_1, HIGH);
}



void S10()
{
  digitalWrite(pom_2, HIGH);
  digitalWrite(ziel, HIGH);
}
void S11()
{
  digitalWrite(pom_2, HIGH);
  digitalWrite(ziel, HIGH);
}
void S12()
{
  digitalWrite(pom_2, HIGH);
  digitalWrite(pom_1, HIGH);
}
void S13()
{
  digitalWrite(pom_2, HIGH);
  digitalWrite(pom_1, HIGH);
} 

 

Edytowano przez Zakrzewiaczek
  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.