Arduino Polska Forum

Pełna wersja: Ten jeden niedziałający kod
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam.
Niedawno postanowiłem zabrać się za Arduino i zdecydowałem kupić płytkę DFRDuino UNO R3 wraz z małym zestawem komponentów. Na początku szło wszystko wporządku, korzystałem z poradnika z pewnego portalu (nie wiem czy mogę posłużyć się nazwą), na którym w kolejnych artykułach dowiadywałem się o nowych możliwościach Arduino i wykonywałem ćwiczenia. W pewnym momencie tej nauki natknąłem się na zadania z potencjometrem.
[Obrazek: e61d020c13b4c.jpg]
[Obrazek: 930742d36914b.jpg]
Taki mam model. Tyle co o nim wiem, to że jest to "potencjometr montażowy 5k Ohm"

W czym problem? Zadanie typu pokazywanie w monitorze portu szeregowego pozycji tego potencjometru nie było problemem, problem dopiero się pojawił przy takim ustawieniu komponentów na płytce:

[Obrazek: ard_3_3.png]

przy takim oto kodzie: 

Kod:
int odczytanaWartosc = 0;

void setup() {
  pinMode(8, OUTPUT); //Konfiguracja wyjść pod diody LED
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop() {
  odczytanaWartosc = analogRead(A5);//Odczytanie wartości z ADC  
  odczytanaWartosc = map(odczytanaWartosc, 0, 1023, 1, 5);//Przeskalowanie wartości
  
  if (odczytanaWartosc == 1) { //Pierwszy zakres
      digitalWrite(8, HIGH);
      digitalWrite(9, LOW);
      digitalWrite(10, LOW);
      digitalWrite(11, LOW);
      digitalWrite(12, LOW);
  } else if (odczytanaWartosc == 2) { //Drugi zakres
      digitalWrite(8, LOW);
      digitalWrite(9, HIGH);
      digitalWrite(10, LOW);
      digitalWrite(11, LOW);
      digitalWrite(12, LOW);      
  } else if (odczytanaWartosc == 3) {  //Trzeci zakres
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
      digitalWrite(10, HIGH);
      digitalWrite(11, LOW);
      digitalWrite(12, LOW);      
  } else if (odczytanaWartosc == 4) {  //Czwarty zakres
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
      digitalWrite(10, LOW);
      digitalWrite(11, HIGH);
      digitalWrite(12, LOW);      
  } else {  //Pozostałe, czyli piąty zakres
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
      digitalWrite(10, LOW);
      digitalWrite(11, LOW);
      digitalWrite(12, HIGH);      
  }
  delay(50); //Opóźnienie, aby nie odczytywać ADC zbyt szybko        
}

Z tego, co wynika z poradnika, te diody powinny się świecić w zależności od ustawienia potencjometru. Niestety tak się nie dzieje. Próbowałem robić te kombinacje w innych pinach breadboardu, ale to nic nie dało. Bardzo się martwię tym, ponieważ zatrzymuje mi to drogę do dalszej nauki Arduino. Około 10 razy rozmontowywałem i montowałem komponenty, aby mieć pewność, czy wszystko jest wporządku, ale nic z tego. Dodam, że nie mam żadnych błędów z kompilacją i prostsze programy, które wykonałem z w/w poradnika działają.

Co może być przyczyną?
Z góry dziękuję za każdą odpowiedź i pozdrawiam.
Brak deklaracji pinu analogowego
Spróbuj wydrukować do terminalu odczytana wartość i sprawdź co wskazuje bez map.