Skocz do zawartości

Problem z odczytem wartości z listwy czujników QTR-8A używając 'analogRead()'


szeryf

Pomocna odpowiedź

Cześć wszystkim,

Staram się odczytać wartości z listwy czujników QTR-8A przy użyciu funkcji analogRead() w Arduino, ale napotkałem kilka problemów.

Podłączam czujniki do odpowiednich pinów analogowych na moim Arduino (A0 - A7), zasilanie VCC do 5V, a GND do masy. Następnie próbuję odczytać wartości pojedynczych czujników przy pomocy następującego kodu:

const int sensorPin = A0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(sensorPin);
  Serial.println(sensorValue);
  delay(100);
}

Oczekiwałem, że otrzymam różne wartości w zależności od tego, czy czujnik jest nad białą czy czarną powierzchnią. Niemniej jednak, niezależnie od koloru powierzchni, wartość zwracana przez analogRead() jest stale wysoka (blisko 1023), na samą linią czarną jest dokładnie 1023, a nad białą powierzchnią spada do 1016, odczyt "z powietrza" przy podniesionej listwie jest nieco poniżej 1000.

Dodam, że listwa jest sprawna, bo jak wczytuję gotowy przykład dołączony z biblioteką qtr, to przy przesuwanie listwy na linią czarną linią zwraca mi pełny zakres dla pozycji linii o 0 do 7000, przy czym odczyty te są dość niestabilne dlatego chciałem spróbować skonfigurować ją "ręcznie".

Czy ktoś ma sugestie, jak mogę poprawnie odczytać wartości z tych czujników? Czy jest coś, co mogę zrobić inaczej lub coś, co mogłem pominąć?

Z góry dziękuję za wszelką pomoc!

Link do komentarza
Share on other sites

1 godzinę temu, szeryf napisał:

Czy jest coś, co mogę zrobić inaczej lub coś, co mogłem pominąć?

A czy przypadkiem nie trzeba włączyć diod oświetlających? Nic o tym nie pisałeś, a bez tego raczej nie ma prawa działać.

Link do komentarza
Share on other sites

(edytowany)

 

1 godzinę temu, ethanak napisał:

A czy przypadkiem nie trzeba włączyć diod oświetlających?

Wydawało mi się, że po podłączeniu zasilania do tej listwy diody są włączane automatycznie, czy coś pomyliłem? Do pinu LedOn na listwie niczego nie podłączałem.

Edytowano przez szeryf
Link do komentarza
Share on other sites

Nie widziałem tej listwy na oczy, ale zerknąłem na schemat. Pin LedOn steruje właśnie jak sama nazwa wskazuje włączaniem LED.

W bibliotece też jest coś na jego temat, chociaż od czasu Mbroli tak nieczytelnego kodu nie widziałem 🙂

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

Podłączenie tego pinu LedOn nic nie wnosi. Z tego co widzę w opisie przykładu, to jest on opcjonalny. Robiłem testy na listwie cyfrowej, tam mogę spokojnie wysterować ją ręcznie za pomocą długości czasu rozładowania kondensatora, ale w analogowej zamiast kondensatora jest rezystor i nie bardzo wiem jak to ugryźć.

Link do komentarza
Share on other sites

6 minut temu, szeryf napisał:

Podłączenie tego pinu LedOn nic nie wnosi.

Ano tak - teraz dokładniej popatrzyłem na schemat, diody powinny być zapalone bez podłączenia (LedOn w powietrzu). Mój błąd.

Teoretycznie to co napisałeś powinno działać... bo efekt jest takim jakby ledy w ogóle się nie paliły i łapał światło z otoczenia. Na pewno się palą? Sprawdź na wszelki wypadek, bo innych pomysłów nie mam 😞

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.