Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję

Kurs Arduino - #4 - Przetwornik ADC

Autor Wiadomość
Dawiddk1 



Posty: 3
Wysłany: 15-12-2017, 18:43   

Siema, dopiero zaczynam przygode z programowaniem :) mogłby ktoś mi powiedzieć gdzie mam błąd ?
tj. zadanie 4.5 lekko przerobione bo sa 3 diody symbolizujące szanse "proby" za każdym razem gdy zle odpowiemy jedna z tych diód gaśnie.

ogólnie program działa tak że jak trafimy to działa poprawnie jak odpowiemy zle to za piewszym razem działa poprawnie natomiast jak odpowiem zle drugi raz to na ekran wywala mi jakbym mail proby 2 i 1 i dodatkowo pisze pokrec potencjometrem :/

Kod programu: Zaznacz cały
//przypisane pinów
#define led_czerwona1 9
#define led_czerwona2 10
#define led_czerwona3 11
#define led_zielona 8
#define przycisk 7
#define pin_odczyt A5


int adc=0; // odczyt z potecjonometru
String podana_liczba = ""; //liczba podana przez gracza
int podana_liczba_int=0; // przskalowanie na  int ?
byte proby = 3; //ilosc prob
boolean od_nowa = true;
void setup() {


pinMode(przycisk,INPUT_PULLUP);
pinMode(led_zielona,OUTPUT);
pinMode(led_czerwona1,OUTPUT);
pinMode(led_czerwona2,OUTPUT);
pinMode(led_czerwona3,OUTPUT);
Serial.begin(9600);
}
void loop() {
  if(od_nowa=true) //jesli rozpoczynamy gre od nowa
  {
    proby=3;
    digitalWrite(led_zielona,LOW); //zgaszamy wszystkie diody
    digitalWrite(led_czerwona1,HIGH);
    digitalWrite(led_czerwona2,HIGH);
    digitalWrite(led_czerwona3,HIGH);

    while(!Serial)delay(10); //czekamy na otwarcie serial monitora
    Serial.println("pokreć potencjonometrem");

   
    adc=analogRead(pin_odczyt); // szczytujemy wartosc z potecjonometru
   }

  while(Serial.available() ==0); //czekamy na podanie liczby

  podana_liczba=Serial.readStringUntil('\n');
  podana_liczba_int=podana_liczba.toInt(); // zamieniamy ze String na int



  if(adc-podana_liczba_int<=50 && adc-podana_liczba_int >= -50)
  {
Serial.println("trafiłeś! udało ci sie wygrać");
digitalWrite(led_zielona,HIGH);
digitalWrite(led_czerwona1,LOW);
digitalWrite(led_czerwona2,LOW);
digitalWrite(led_czerwona3,LOW);
od_nowa=true;
Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk");
while(digitalRead(przycisk)==HIGH); delay(20);

  }
else {
if (proby==3)
{
 
  od_nowa=false;
  digitalWrite(led_czerwona1,LOW);
  proby --;
  Serial.println("nie udało ci się trafić ale masz jeszcze szanse");
  Serial.println("ilosc szans: ");
  Serial.println(proby);
Serial.println("podaj kolejna liczbe");
while(Serial.available()==0) delay(20);
}
if(proby==2)
{
 
  od_nowa=false;
  digitalWrite(led_czerwona1,LOW);
  digitalWrite(led_czerwona2,LOW);
  proby--;
 Serial.println("nie udało ci się trafić ale masz jeszcze szanse");
  Serial.println("ilosc szans: ");
  Serial.println(proby);
Serial.println("podaj kolejna liczbe");
while(Serial.available()==0) delay(20);
}

if(proby==1)
{
 
  digitalWrite(led_czerwona1,LOW);
  digitalWrite(led_czerwona2,LOW);
  digitalWrite(led_czerwona3,LOW);
 
  proby --;
  od_nowa=true;
  Serial.println("nie udało ci się trafić");
  Serial.println("wykorzystales wszystkie swoje szanse");

Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk");
while(digitalRead(przycisk)==HIGH); delay(20);
}

}

delay(5);




 
}

Ostatnio zmieniony przez Dawiddk1 15-12-2017, 18:44, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 8506
Pomógł: 126 razy
Otrzymał 526 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 15-12-2017, 19:45   

Dawiddk1, witam na forum :) Nie sprawdziłem całości, bo od razu zatrzymałem się na jednej linii. Pomysł nad tym zapisem:
Kod programu: Zaznacz cały
if(od_nowa=true) //jesli rozpoczynamy gre od nowa


Na udzielam odpowiedzi na pytania techniczne zadawane kanałami prywatnymi (maile, komunikatory, PW).
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
Dawiddk1 



Posty: 3
Wysłany: 15-12-2017, 20:26   

Racja był błąd
tak powinno być:
Kod programu: Zaznacz cały
if(od_nowa==true) //jesli rozpoczynamy gre od nowa


Jednak nie zmieniło to faktu że w momencie w którym popełnie błąd 2 raz odrazu czyta mi też nastepnego if i zgasza wszstkie diody bez mozliwosci odpowiedzenia drugi raz :/

Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 8506
Pomógł: 126 razy
Otrzymał 526 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 15-12-2017, 20:53   

Dawiddk1, no to lecimy dalej, skoro to nie było to, to spróbuj ładniej sformatować kod, wyrównać wcięcia, nawiasy itd. Będzie łatwiej analizować całość - teraz kod jest trochę rozsypany ;)


Na udzielam odpowiedzi na pytania techniczne zadawane kanałami prywatnymi (maile, komunikatory, PW).
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
Dawiddk1 



Posty: 3
Wysłany: 15-12-2017, 21:42   

Już wszystko odkryłem! :) Troche to zaplątałem w if ... Napewno można łatwiej ale ja nie wiem jak :/
Kod programu: Zaznacz cały
//przypisane pinów
#define led_czerwona1 9
#define led_czerwona2 10
#define led_czerwona3 11
#define led_zielona 8
#define przycisk 7
#define pin_odczyt A5


int adc = 0; // odczyt z potecjonometru
String podana_liczba = ""; //liczba podana przez gracza
int podana_liczba_int = 0; // przskalowanie na  int ?
byte proby = 3; //ilosc prob
boolean od_nowa = true;
void setup() {


  pinMode(przycisk, INPUT_PULLUP);
  pinMode(led_zielona, OUTPUT);
  pinMode(led_czerwona1, OUTPUT);
  pinMode(led_czerwona2, OUTPUT);
  pinMode(led_czerwona3, OUTPUT);
  Serial.begin(9600);
}
void loop() {
  if (od_nowa == true) //jesli rozpoczynamy gre od nowa
  {
    proby = 3;
    digitalWrite(led_zielona, LOW); //zgaszamy wszystkie diody
    digitalWrite(led_czerwona1, HIGH);
    digitalWrite(led_czerwona2, HIGH);
    digitalWrite(led_czerwona3, HIGH);

    while (!Serial)delay(10); //czekamy na otwarcie serial monitora
    Serial.println("pokreć potencjonometrem");


    adc = analogRead(pin_odczyt); // szczytujemy wartosc z potecjonometru
  }

  while (Serial.available() == 0); //czekamy na podanie liczby

  podana_liczba = Serial.readStringUntil('\n');
  podana_liczba_int = podana_liczba.toInt(); // zamieniamy ze String na int



  if (adc - podana_liczba_int <= 50 && adc - podana_liczba_int >= -50)
  {
    Serial.println("trafiłeś! udało ci sie wygrać");
    digitalWrite(led_zielona, HIGH);
    digitalWrite(led_czerwona1, LOW);
    digitalWrite(led_czerwona2, LOW);
    digitalWrite(led_czerwona3, LOW);
    od_nowa = true;
    Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk");
    while (digitalRead(przycisk) == HIGH); delay(20);
  }
  else {
    if (proby == 3)
    {
      if (adc - podana_liczba_int <= 50 && adc - podana_liczba_int >= -50)
      {
        Serial.println("trafiłeś! udało ci sie wygrać");
        digitalWrite(led_zielona, HIGH);
        digitalWrite(led_czerwona1, LOW);
        digitalWrite(led_czerwona2, LOW);
        digitalWrite(led_czerwona3, LOW);
        od_nowa = true;
        Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk");
        while (digitalRead(przycisk) == HIGH); delay(20);

      }
      else
      {
        od_nowa = false;
        digitalWrite(led_czerwona1, LOW);
        proby --;
        Serial.println("nie udało ci się trafić ale masz jeszcze szanse");
        Serial.println("ilosc szans: ");
        Serial.println(proby);
        Serial.println("podaj kolejna liczbe");
      }
    }

    while (Serial.available() == 0); //czekamy na podanie liczby
    podana_liczba = Serial.readStringUntil('\n');
    podana_liczba_int = podana_liczba.toInt(); // zamieniamy ze String na int

    if (proby == 2)
    {
      if (adc - podana_liczba_int <= 50 && adc - podana_liczba_int >= -50)
      {
        Serial.println("trafiłeś! udało ci sie wygrać");
        digitalWrite(led_zielona, HIGH);
        digitalWrite(led_czerwona1, LOW);
        digitalWrite(led_czerwona2, LOW);
        digitalWrite(led_czerwona3, LOW);
        od_nowa = true;
        Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk");
        while (digitalRead(przycisk) == HIGH); delay(20);
      }
      else
      {
        od_nowa = false;
        digitalWrite(led_czerwona1, LOW);
        digitalWrite(led_czerwona2, LOW);
        proby--;
        Serial.println("nie udało ci się trafić ale masz jeszcze szanse");
        Serial.println("ilosc szans: ");
        Serial.println(proby);
        Serial.println("podaj kolejna liczbe");
      }
    }

    while (Serial.available() == 0); //czekamy na podanie liczby
    podana_liczba = Serial.readStringUntil('\n');
    podana_liczba_int = podana_liczba.toInt(); // zamieniamy ze String na int

    if (proby == 1)
    {
      if (adc - podana_liczba_int <= 50 && adc - podana_liczba_int >= -50)
      {
        Serial.println("trafiłeś! udało ci sie wygrać");
        digitalWrite(led_zielona, HIGH);
        digitalWrite(led_czerwona1, LOW);
        digitalWrite(led_czerwona2, LOW);
        digitalWrite(led_czerwona3, LOW);
        od_nowa = true;
        Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk");
        while (digitalRead(przycisk) == HIGH); delay(20);

      }
      else
      {
        digitalWrite(led_czerwona1, LOW);
        digitalWrite(led_czerwona2, LOW);
        digitalWrite(led_czerwona3, LOW);

        proby --;
        od_nowa = true;
        Serial.println("nie udało ci się trafić");
        Serial.println("wykorzystales wszystkie swoje szanse");
        Serial.println("jesli chcesz zagrać ponownie nacisnij przycisk");
        while (digitalRead(przycisk) == HIGH); delay(20);
      }
    }

  }
  delay(20);
}


Dzięki wielkie! :)

Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 8506
Pomógł: 126 razy
Otrzymał 526 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 15-12-2017, 22:00   

Dawiddk1, super - nauczka na przyszłość - od razu warto ładnie formatować kod ;)


Na udzielam odpowiedzi na pytania techniczne zadawane kanałami prywatnymi (maile, komunikatory, PW).
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
mistus 



Posty: 23
Otrzymał 3 piw(a)
Skąd: OPOLE
Wysłany: 02-01-2018, 10:08   

zadanie 4.2
Proste następuje branie sygnału analogowego z powietrza(tak zwana Elektro statyczność) i co złapie to takie dane poda dlatego układy typu mos fet są bardzo czułe i można łatwo uszkodzić

zadanie 4.4

ja to bym zrobił tak
Kod programu: Zaznacz cały

int dane = 0;
int prog = 0;
float napiecie = 0;
int wyswietl = 0;
void setup() {
  Serial.begin(9600);// połącz sie z komputerem
  pinMode(8, OUTPUT);// ustaw pin 8 jako wyjście
  }

void loop() {
  dane = analogRead(A5);// pobieramy sygnał analogowy
  napiecie = dane*(5.0/1023.0);// zamieniamy sygnały analogowe na napięcie
  prog = analogRead(A4); // ustawiamy czułość diody
 if(dane < prog){// jeśli ustawimy sygnał mniejszy od rezystancji
 digitalWrite(8, HIGH);// włącz diodę
 if(wyswietl == 0){// jeśli wyświetli diodę
 Serial.println(napiecie);//wypisz w monitorze
 wyswietl = 1;// zamień dane wyświetl by pokazać raz napięcie
 }
 }
 else{// jeśli sygnał jest większy od rezystancji
  digitalWrite(8, LOW);// wyłącz diodę
  wyswietl = 0;// zamień dane by znów moc wyświetlić dane diody
 }
 delay(50);// odczekaj by wszystko fajnie fungowało :)


zadanie 4.5 jeszcze myślę

__________
Komentarz dodany przez: Treker
Kod programu, dla lepszej czytelności, należy umieszczać w tagach [code]. Proszę to poprawić.

Ostatnio zmieniony przez mistus 02-01-2018, 15:04, w całości zmieniany 2 razy  
Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 8506
Pomógł: 126 razy
Otrzymał 526 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 02-01-2018, 13:20   

mistus, witam na forum :) Dzięki za podzielenie się Twoimi kodami - pamiętaj na przyszłość, aby wszystkie programy wklejone w post obejmować tagami [code]. Będą one wtedy czytelniejsze :)


Na udzielam odpowiedzi na pytania techniczne zadawane kanałami prywatnymi (maile, komunikatory, PW).
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
mistus 



Posty: 23
Otrzymał 3 piw(a)
Skąd: OPOLE
Wysłany: 06-01-2018, 00:36   

Trochę się na męczyłem nad zadaniem 4.5 i niestety przyznam się ze musiałem skorzystać z pomocy forum dokładnie z dwóch funkcji nie znałem ich toINT() i && tej drugiej funkcji nie rozumie jak by mógł ktoś mi ja wytłumaczyć był bym wdzięczny
ps. tam gdzie plus w komentarzu trzeba wykasować
Kod programu: Zaznacz cały

#define przycisk 8// nadanie pina nazw
#define czerwona 7
#define zolta 6
#define zielona 5
int wcisniety = 0;
int potencjometr = 0;
String wpis = "";
int zapis = 0;
int pruba = 3;
int tekst = 0;
int informacja = 3;
void setup() {
  Serial.begin(9600);
  pinMode(przycisk, INPUT_PULLUP); //ustawienie przycisku jako wejście
  pinMode(czerwona, OUTPUT);// ustawienie diod jako wyjście
  pinMode(zolta, OUTPUT);
  pinMode(zielona, OUTPUT);
  digitalWrite(przycisk, HIGH);// wpisanie przyciskowi stanu wysokiego
  digitalWrite(czerwona, LOW);// wpisanie dioda stanu niskiego
  digitalWrite(zolta, LOW);
  digitalWrite(zielona, LOW);
  }

void loop() {
  if(tekst == 0){//rozpoczęcie tekstu
    Serial.println("Część jak masz na imię graczu");
    Serial.println("po wpisaniu imienia wciśnij przycisk działa jak enter");
    tekst = 1;//zakończenie tekstu
  }
  if (digitalRead(przycisk) == LOW){//załączenie gry oraz przywitanie
    delay (500);
    digitalWrite(czerwona, LOW);//wyłącz diody po wykonaniu gry
    digitalWrite(zielona, LOW);
    if (wcisniety == 0);//jeśli jest wciśnięty przycisk 2 razy i następne
    potencjometr = analogRead(A5);//wpisz dane potencjometru
    Serial.println(potencjometr);//+ dodatkowo normalnie nie pokazuje wyniku potencjometru
    (200);
    Serial.println("wylosowałeś jaka liczbę");//zapytaj gracza jaka to liczba
    pruba = 3;// odpal 3 prób
  }
  wcisniety = 1;//zakończ wciśniecie przycisku
  Serial.flush();// kasuj z bufora
  while(Serial.available() > 0){// sprawdź czy coś jest w buforze
  wpis = Serial.readStringUntil('\n');// wpisz dane z bufora do wpis
  Serial.println(wpis);//+ dodatkowe normalnie nie ma pokazuje imię wpisane   
  zapis = wpis.toInt();// zamienia String na Int i wpisuje do zapis
  }
  if(informacja > 2){//wciśnięcie raz przycisku
    if (digitalRead(przycisk) == LOW){
      delay(200);
    Serial.println("Witam ciebie ja nazywam sie Bob");
    Serial.println(" Witaj w grze Szczęściarz");
    Serial.println("Zasady są proste ustaw potencjometr w jakieś pozycji");
    Serial.println("wciśnij enter czyli nasz przycisk i zgadnij jaka jest liczba na potencjometrze");
    Serial.println("zakres strzału to od 0 - 1023");
    Serial.println("ale nie martw się masz 3 szanse i możesz pomylić się o +/-50");
    informacja = informacja -1;// zakończenie działania pierwszego kliknięcia
  }
 }
  if (zapis > 0){// jeśli trafiłeś świeci dioda zielona
    if(potecjometr-50<=zapis && potencjometr+50>=zapis){
      Serial.println("Brawo trafiłeś jeśli jeszcze raz chcesz spróbować szczęścia kliknij przycisk");
      digitalWrite(zielona, HIGH);
      zapis = 0;
     
    }
    else if (zapis > 0){// jeśli nie masz dwie szanse
      Serial.println("Nie udało się spróbuj jeszcze raz");
      if (pruba > 1){
      digitalWrite(zolta , HIGH);
      delay(1000);
      digitalWrite(zolta, LOW);
      delay(1000);
      zapis = 0;
      pruba = pruba -1;
      }
      else if (pruba == 1){// nie udało się zapal czerwona diodę
        if(zapis > 0){
         Serial.println("to nie twój dzień proponuje bys zaczął od nowa");
         Serial.println("jeśli chcesz wciśnij przycisk");
         digitalWrite(czerwona, HIGH);
        }
         zapis = 0;
       
      }
    }
  }
  wcisniety = 0;

Ostatnio zmieniony przez mistus 06-01-2018, 00:59, w całości zmieniany 4 razy  
Postaw piwo autorowi tego posta
 
 
SOYER 



Posty: 346
Pomógł: 1 raz
Otrzymał 15 piw(a)
Skąd: Kryry
Wysłany: 06-01-2018, 01:21   

&& to operator logiczny AND. Muszą być spełnione oba warunki żeby if się wykonywał. Poczytaj kurs techniki cyfrowej.
Pozdrawiam.

Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
mistus
mistus 



Posty: 23
Otrzymał 3 piw(a)
Skąd: OPOLE
Wysłany: 06-01-2018, 09:53   

Dzięki znam bramki logiczne nie rozumiałem tylko tego symbolu znam symbol & ale pojedynczy tyczy przynajmniej według książki która polecam "Arduino 65 Praktycznych przykładów arduino"
liczb binarnych w systemie dwójkowym czyli mam rozumieć ze dwa operatory tycza liczb dziesiętnych ?

Postaw piwo autorowi tego posta
 
 
Lukaszm 



Posty: 625
Pomógł: 27 razy
Otrzymał 29 piw(a)
Skąd: Warszawa
Programuję w:
C, C++, MATLAB
Wysłany: 06-01-2018, 17:19   

Operator && działa na wartościach logicznych. Działa jak AND w algebrze Boole'a.

Postaw piwo autorowi tego posta
 
 
krzyska 



Posty: 3
Skąd: Warszawa
Wysłany: 06-01-2018, 22:43   

Hejka, to mój pierwszy post tutaj.

Zgodnie z zadaniem domowym 4.6 zrobiłem działający czujnik światła określający jego źródło.

Kod programu: Zaznacz cały

int lewa = 0;
int prawa = 0;
int poziom = 0;
void setup() {
  Serial.begin(9600);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);

}

void loop() {
  lewa = analogRead(A4);
  prawa = analogRead(A5);
 
  lewa = map(lewa, 400, 850, 1, 5); //wartości ustalone doświadczalnie
  prawa = map(prawa, 400, 850, 1, 5);

  poziom = lewa - prawa;
  poziom = map(poziom, -4, 4, 1, 5); //ustalenie różnicy między stronami
   
  Serial.println(poziom); //kontrolnie wyświetlam różnicę
  delay(50);

  digitalWrite(8, LOW); //wyłączenie wszystkich diod
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
  digitalWrite(12, LOW);


// włączenie odpowiedniej diody
  if (poziom == 1) {
    digitalWrite(12, HIGH);
  } else if (poziom == 2) {
    digitalWrite(11, HIGH);
  } else if (poziom == 3) {
    digitalWrite(10, HIGH);
  } else if (poziom == 4) {
    digitalWrite(9, HIGH);
  } else if (poziom == 5) {
    digitalWrite(8, HIGH);
  }
}

Ostatnio zmieniony przez krzyska 06-01-2018, 22:44, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 8506
Pomógł: 126 razy
Otrzymał 526 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 07-01-2018, 21:04   

krzyska, witam na forum :) Dzięki za podzielenie się Twoim rozwiązaniem. W przyszłości ostatni, długi warunek warto byłoby zamienić na instrukcję switch...case. Jednak oczywiście w aktualnej formie też jest poprawnie ;)


Na udzielam odpowiedzi na pytania techniczne zadawane kanałami prywatnymi (maile, komunikatory, PW).
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
mistus 



Posty: 23
Otrzymał 3 piw(a)
Skąd: OPOLE
Wysłany: 13-01-2018, 08:55   

zadanie 4.6 tyle ze na 6 diodach by pokazać jak robić z wyższa liczba diod zwłaszcza że kolega wyżej pokazał jak zrobić na 5
Kod programu: Zaznacz cały

#define czerwony 10// nadaje nazwy pinom
#define zolty
#define zielony 8
#define zielona 7
#define zolta 6
#define czerwona 5
int lewa = 0;// ustawiam zmienne dla lewej i prawej strony
int prawa = 0;
void setup() {
  pinMode(czerwony, OUTPUT);// ustawiam piny diod jako wyjścia
  pinMode(zolty, OUTPUT);
  pinMode(zielony, OUTPUT);
  pinMode(zielona, OUTPUT);
  pinMode(zolta, OUTPUT);
  pinMode(czerwona, OUTPUT);
  }

void loop() {
  lewa = analogRead(A3);// odczytuje stan na lewej stronie
  prawa = analogRead(A4);// odczytuje stan na prawej stronie
  lewa = map(lewa, 50,800,0,3);// nadaje przedziały lewej stronie
  prawa = map(prawa, 50,800,0,3);// nadaje przedziały prawej stronie
  digitalWrite(czerwony, LOW);// wyłączam diody lub zmieniam pozycje świecenia
  digitalWrite(zolty, LOW);
  digitalWrite(zielony, LOW);
  digitalWrite(czerwona, LOW);
  digitalWrite(zolta, LOW);
  digitalWrite(zielona, LOW);
    if (lewa > prawa){// porównuje lewa do prawej
      if (lewa == 1){// zaświecam odpowiednie diody
        digitalWrite(czerwony, HIGH);
      }
      else if (lewa == 2){
        digitalWrite(zolty, HIGH);
      }
      else if (lewa == 3){
        digitalWrite(zielony, HIGH);
      }
    }
    else if (prawa > lewa){// porownuje prawa do lewej
      if (prawa == 1){// zaswiecam odpowiednie diody
        digitalWrite(czerwona, HIGH);
      }
      else if (prawa == 2){
        digitalWrite(zolta, HIGH);
      }
      else if (prawa == 3){
        digitalWrite(zielona, HIGH);
      }
    }
 }

Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
Treker
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Wersja do druku

Skocz do:  

Nie rozwiązałeś swojego problemu? Zobacz podobne tematy: Kurs Arduino - #9 - ... Kurs STM32 - #5 - Ko... Kurs STM32 - #4 - St... Kurs STM32 - #2 - Po...
lub przeszukaj forum po wybranych tagach: artykulow, do, komentarze


Powered by phpBB modified by Przemo © 2003 phpBB Group
Popularne kursy: Arduinopodstawy elektroniki