Skocz do zawartości

Brak reakcji na dane z czujników


lukix

Pomocna odpowiedź

Mam taki program:

$regfile = "m8def.dat"
$crystal = 1000000

'Konfiguracja przetwornika analog-cyfra (ADC)
Config Adc = Single , Prescaler = 64 , Reference = Avcc

Config Portd = Output
      Portd = &B00000000
Config Portb = Output
      Portb = &B00000000

Red_led Alias Portd.6
Green_led Alias Portd.7

Dim W As Word
Dim Sensor5 As Word
Dim Sensor4 As Word
Dim Sensor3 As Word
Dim Sensor2 As Word
Dim Sensor1 As Word
'Pętla
Do
  Gosub Pomiar
  If Sensor5 < 682 Then
     Set Red_led
  Else
     Reset Red_led
  End If

  If Sensor5 > 341 Then
     Set Green_led
  Else
     Reset Green_led
  End If
End
Loop
Pomiar:

  Start Adc
  W = Getadc(0)
  W = Getadc(0)
  Stop Adc
  Sensor5 = W
   Start Adc
  W = Getadc(4)
  W = Getadc(4)
  Stop Adc
  Sensor4 = W
   Start Adc
  W = Getadc(3)
  W = Getadc(3)
  Stop Adc
  Sensor3 = W
   Start Adc
  W = Getadc(2)
  W = Getadc(2)
  Stop Adc
  Sensor2 = W
   Start Adc
  W = Getadc(1)
  W = Getadc(1)
  Stop Adc
  Sensor1 = W
Return

Niezależnie od tego czy czujnik daje napięcie 6V, czy poniżej 0.5V to świeci się tylko zielona dioda.

Napięcie sprawdzałem na nóżkach procesora, a obydwie diody na 100% działają i są dobrze podłączone.

Link do komentarza
Share on other sites

Dodałem konfigurację ADC (pierwszy post zedytowany) i dalej nie działa.

Co może się stać gdy dam większe od napięcia odniesienia?

Link do komentarza
Share on other sites

Można na przykład upalić pin od adc, jeśli napięcie podane na przetwornik będzie większe od napięcia odniesienia, ale mniejsze od napięcia zasilania, to prawdopodobnie się nie upali, ale będzie wskazywał 1023 w tym zakresie od Aref do Vcc.

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

Masz podłączone zasilanie do AVCC, kondensatory i cewka do filtrowania? Jak masz podłączone diody? Z tego, co się orientuję ATmega8 ma cztery kanały 10bitowe i dwa 8 bitowe – chyba, że jest to ATmega8A. Po co włączasz ADC dokonujesz pomiaru i od razu wyłączasz i tak kilka razy. Ja na twoim miejscu włączyłbym przetwornik przed pętlą główną na początku programu, natomiast w podprogramie odczytałbym po kolei wartość z ADC - możesz dać jakieś opóźnienia pomiędzy kolejnymi pomiarami. Zamiast robić pięć zmiennych zrób sobie jedną tablicę.

Link do komentarza
Share on other sites

Z tego, co się orientuję ATmega8 ma cztery kanały 10bitowe i dwa 8 bitowe – chyba, że jest to ATmega8A.

Skąd takie informacje?

– 8-channel ADC in TQFP and QFN/MLF package (Eight Channels 10-bit Accuracy)

– 6-channel ADC in PDIP package (Six Channels 10-bit Accuracy)

Link do komentarza
Share on other sites

Na samym początku:

6-channel ADC in PDIP package

Four Channels 10-bit Accuracy

Two Channels 8-bit Accuracy

W rozwinięciu:

10-bit Resolution (8-bit Accuracy on ADC4 and ADC5)

[ Dodano: 07-02-2012, 15:55 ]

Napisał przykładowy program obsługujący dwa kanały.

$regfile = "m8def.dat"
$crystal = 1000000

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Portd = Output
      Portd = &B00000000

Dim Sonar(2) As Word
Red_led Alias Portd.6
Green_led Alias Portd.7
Start Adc

Do
 Sonar(1) = Getadc(0)
 Sonar(2) = Getadc(1)
 If Sonar(1) < 512 Then
   Set Red_led
 Else
   Reset Red_led
 End If
 If Sonar(2) < 512 Then
   Set Green_led
 Else
   Reset Green_led
 End If
Loop
End
Link do komentarza
Share on other sites

Na samym początku:
6-channel ADC in PDIP package

Four Channels 10-bit Accuracy

Two Channels 8-bit Accuracy

W rozwinięciu:

10-bit Resolution (8-bit Accuracy on ADC4 and ADC5)

Podaj proszę link do tego datasheet.

Link do komentarza
Share on other sites

Ten dokument którego link podałeś, jest dokument z 2003 roku, który poprzedzony był jeszcze dokumentem z grudnia 2002:

http://www.solarbotics.com/assets/datasheets/atmega8l_preliminary_summary.pdf

To są wstępne założenia dla tych mikrokontrolerów. Oba dokumenty nie są pełnymi datasheetami. Właściwe dokumenty to:

summary: http://www.atmel.com/Images/2486S.pdf

datasheet: http://www.atmel.com/Images/doc2486.pdf

Warto patrzeć na daty oraz korzystać z dokumentów dostępnych na stronach producenta:

http://www.atmel.com/devices/ATMEGA8.aspx?tab=documents

by nie wprowadzać w błąd siebie i innych forumowiczów.

Prawidłowymi są więc podane przeze mnie:

– 8-channel ADC in TQFP and QFN/MLF package (Eight Channels 10-bit Accuracy)

– 6-channel ADC in PDIP package (Six Channels 10-bit Accuracy)

Link do komentarza
Share on other sites

To był tylko przykładowy link, nie wiem czy czytał kolega inne fora, ale na ten temat były wiele dyskusji, osoby, które czytały książkę Programowanie mikrokontrolerów AVR w języku Bascom Marcin Wiązania wiedzą, że ten problem także tam został poruszony. Książka ta została napisana w roku 2004 i autor tych informacji nie wyssał z palca. Ja nie mówię, że w obecnej wersji sprawa wygląda tak samo, jednak skąd mamy wiedzieć, jaki mikrokontroler użył autor tego postu może akurat miał z tego czasu jakiś egzemplarz, a zawsze lepiej dmuchać na zimne, więc nie wiem, kto wprowadza forumowiczów błąd.

Link do komentarza
Share on other sites

... skąd mamy wiedzieć, jaki mikrokontroler użył autor tego postu może akurat miał z tego czasu ...

A na jakiej podstawie zakładasz, że ma stary, skoro minęło już co najmniej 8 lat?

Czyż nie jest bardziej prawdopodobne, że kupił go niedawno tym bardziej, że autor tematu w 2003 roku (data załączonego przez Ciebie dokumentu) miał zaledwie 8 lat?

... a zawsze lepiej dmuchać na zimne, ...

Zamiast dmuchać powinieneś był w takim układzie napisać że są różnice, a nie podawać nieaktualne od dawna informacje. Niestety nie mogłeś tego napisać, ponieważ nie wiedziałeś o tym:

Z tego, co się orientuję ...

I morał dla kupujących aktualnie książki sprzed wielu lat:

... osoby, które czytały książkę Programowanie mikrokontrolerów AVR w języku Bascom Marcin Wiązania wiedzą, że ten problem także tam został poruszony. Książka ta została napisana w roku 2004 ...

kupujcie najnowsze.

Link do komentarza
Share on other sites

Kolega wybaczy, ale przed napisaniem wypowiedzi nie sprawdzam ile lat ma użytkownik, który zadał pytanie 😃, co więcej widzę, że kolega szuka dziury w całym zamiast pomóc rozwiązać problem. A jaki kolega ma mikrokontroler nigdy nie wiadomo ja mam na przykład części z lat 70 choć nie urodziłem się wtedy.

Rzeczywiście pewności nie mam, od kiedy przerobiono ten mikrokontroler i nie wydaje mi się, aby kolega ją miał, jednak chciałem na to uchylić. Wydaje mi się, że powyższe wypowiedzi kolegi nie pomogą rozwiązać problemu, jaki przedstawił kolega lukix.

Link do komentarza
Share on other sites

Następnym razem więc nie gdybaj, tylko sprawdź w datasheet zanim doradzisz komuś nieprawidłowo lub niedokładnie.

Nie wiem, co w mojej wypowiedzi było niedokładne lub nieprawdziwe na pewno bardziej rzeczowe niż Twoje komentarze.

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.