wystarczy standardowo podlaczyc do plusa dwa rezystory 4,7k .. u mnie dziala :)
ja wlasnie prawie skonczylem ATmega8 +lcd 2*16 + 2*DS1820+ wewnetrzny przetwornik ADC... patrz post ponizej
ATMega8 ma 6 kana³owy ADC , wiec poco ci dodatkowo zewnzetrzny ?? na pcf8591 ??
'Program obs³ugi wbudowanego w mikrokontroler '10-bitowego przetwornika A/C
$regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 1000000 'informuje kompilator o czêstotliwo¶ci oscylatora 'taktuj±cego mikrokontroler Config Lcd = 16 * 2 'konfiguracja typu wy¶wietlacza 'LCD Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portd.5 , Db7 = Portc.0 , E = Portd.6 , Rs = Portd.7 'konfiguracja linii 'mikrokontrolera, do których 'do³±czono wy¶wietlacz 'LCD Config Adc = Single , Prescaler = Auto , Reference = Internal 'konfiguracja wewnêtrznego przetwornika A/C
Dim Wart_ac As Word 'zmienna na warto¶æ odczytan± 'z przetwornika Dim V As Single 'zmienna przechowuj±ca obliczon± warto¶æ zmierzonego napiêcia Dim Wart_nap As String * 3 'zmienna, do której wpisywana 'zostaje przetworzona warto¶æ 'zmiennej V na tekst Start Adc 'uruchamia wbudowany przetwornik Cls Do 'pocz±tek pêtli programu Wart_ac = Getadc(1) 'odczytanie warto¶ci z wej¶cia 'ADC1 mikrokontrolera Home ' Cls 'czyszczenie LCD Lcd Wart_ac 'wy¶wietlenie w pierwszej linii 'Lcd odczytanej warto¶ci 'z przetwornika Lowerline 'kursor do drugiej linii LCD V = Wart_ac * 0.0267 'zamiana odczytanej warto¶ci z A/C na napiêcie Wart_ac * ok. 4,8 mV Wart_nap = Fusing(v , "##.#") 'formatowanie warto¶ci zmiennej V do do formatu x.xx i zamiana 'tej warto¶ci na postaæ tekstow±
Lcd Wart_nap 'wy¶wietlenie obliczonej warto¶ci Wart_nap w drugiej 'linii LCD Cursor Off Waitms 300 'opó¼nienie 100 ms Loop 'koniec pêtli Do...Loop End 'koniec programu