Pomiar pH wody - budowa sterownika do akwarium
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Pomiar pH wody - budowa sterownika do akwarium
Mhihi @pikczu - testowałeś cos takiego : Debug #usb, "Testowe na COM4"
Chodzi m io to że Debug można mieć na każdym COM`ie
Słowo Debug kiedy jest ON to znaczy Print, ale kiedy jest OFF to na każdym COM`ie nie kompiluje już wiadomości i kod mniejszy naturalnie.
Chodzi m io to że Debug można mieć na każdym COM`ie
Słowo Debug kiedy jest ON to znaczy Print, ale kiedy jest OFF to na każdym COM`ie nie kompiluje już wiadomości i kod mniejszy naturalnie.
- Pikczu
- Posty: 392
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: Pomiar pH wody - budowa sterownika do akwarium
Testowałem dość dawno na xmedze i niedzialalo.
w sumie to sie nosiłem z zamiarem napisania do Marka czemu nie działa ale jakoś tak zeszło.
Natomiast nie wiem czy działa np na mega2560.
Zwyczajnie nie było kiedy.
w sumie to sie nosiłem z zamiarem napisania do Marka czemu nie działa ale jakoś tak zeszło.
Natomiast nie wiem czy działa np na mega2560.
Zwyczajnie nie było kiedy.
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Pomiar pH wody - budowa sterownika do akwarium
Przyznam się do swojego hobby - zbieram/kolekcjonuję słuchawki. Kupuje jak kobiety buty
Na razie mam około dziesięciu, ale choroba się pogłębia
A może to się kiedyś skończy jak kupie "idealne", bo każde które kupuje odsłuchuje i uważam, że grają lepiej niż poprzednie i muszę mieć
Mój najnowszy zakup to MDR-XB550 - cudne. Wiem że to podbite basy, ale w urządzeniach zasilanych 3.2V sprawdzają się idealnie.
Stać mnie było na Schenheiser`y i miałem na głowie, ale te pobiły konkurentów - no cudne
Inne słuchawki do smartfona, inne do porządnego wzmaka. Te sa do smartfona idealne.
->zmierzam do puenty
...ale fajnie posłuchać takiej nuty na nich
..a na samym końcu dodam, że te słuchafony współpracują z telefonem. 1Klik odbierz/pause/play, 2kliki następny utwór, 3 kliki poprzedni utwór , ale najważniejsze jak grają
dzięki za wrzutę
- podsumowując ocenę słuchawek - są tak lekkie że można trzepać głową i nie spadną ahahahahahaha a graja jak marzenie
Na razie mam około dziesięciu, ale choroba się pogłębia
A może to się kiedyś skończy jak kupie "idealne", bo każde które kupuje odsłuchuje i uważam, że grają lepiej niż poprzednie i muszę mieć
Mój najnowszy zakup to MDR-XB550 - cudne. Wiem że to podbite basy, ale w urządzeniach zasilanych 3.2V sprawdzają się idealnie.
Stać mnie było na Schenheiser`y i miałem na głowie, ale te pobiły konkurentów - no cudne
Inne słuchawki do smartfona, inne do porządnego wzmaka. Te sa do smartfona idealne.
->zmierzam do puenty
...ale fajnie posłuchać takiej nuty na nich
..a na samym końcu dodam, że te słuchafony współpracują z telefonem. 1Klik odbierz/pause/play, 2kliki następny utwór, 3 kliki poprzedni utwór , ale najważniejsze jak grają
dzięki za wrzutę
- podsumowując ocenę słuchawek - są tak lekkie że można trzepać głową i nie spadną ahahahahahaha a graja jak marzenie
- Pikczu
- Posty: 392
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: Pomiar pH wody - budowa sterownika do akwarium
Fajny offtop jestem na kupnie słuchawek. Mam już kilka lat Audio technica MH50 z kablem ale chce sobie kupic wersje BT.
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Pomiar pH wody - budowa sterownika do akwarium
OK, poddaję się z menu+podmenu - jestem za cienki na to Będzie po prostu tasiemiec menu.
Podpowiedzcie mi jak ugryźć zmienną STRING 16 znaków? Dokładniej mówiąc będzie to zmienna o zmiennej długości. Jeżeli zrobię zmienną "Dim x As String * 16", ale będę potrzebował wpisać tylko np 5 znaków to co wtedy?
Chodzi mi o to, że chcę mieć możliwość wpisania do sterownika hasła i klucza API, ale hasło nie zawsze będzie miało jednakową długość.
Podpowiedzcie mi jak ugryźć zmienną STRING 16 znaków? Dokładniej mówiąc będzie to zmienna o zmiennej długości. Jeżeli zrobię zmienną "Dim x As String * 16", ale będę potrzebował wpisać tylko np 5 znaków to co wtedy?
Chodzi mi o to, że chcę mieć możliwość wpisania do sterownika hasła i klucza API, ale hasło nie zawsze będzie miało jednakową długość.
- Henryk
- Posty: 348
- Rejestracja: 22 sty 2018, 17:20
Re: Pomiar pH wody - budowa sterownika do akwarium
Witam
Tu przykład z MCS Wiki AVR odnośnie insertchar https://wiki.mcselec.com/bavr/INSERTCHAR
Ja załatwiłem problem bardzo prymitywnie , ale działa , potrzebowałem tylko 6 znaków
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Zapis: ' wprowadzanie średnicy kola
- Cls
- Locate 1 , 1 : Lcd "Nowe dane kola . "
- Locate 2 , 1 : Lcd "Wpisz -"
- Locate 3 , 1 : Lcd "Max. wart.255 mm"
- Locate 4 , 1 : Lcd "#..zapisz nowe dane "
- Wartosc = Space(6) ' zmienna string .(6)ilość spacji max długość edytowanygo ciągu znakow
- Pozycja = 0 ' zmienna byte ...ustawia kursor na kolejnym znaku do edycji
- Do
- Klw = Getkbd()
- If Klw <> 16 Then : Znak = Lookupstr(klw , Dta) :
- Insertchar Wartosc , Pozycja , Znak : Locate 2 , 8 : Lcd Wartosc ; " " : Pozycja = Pozycja + 1 : End If
- Waitms 300
- If Klw = 14 Then
- Kolo = Val(wartosc)
- If Kolo < 1 Then
- Goto Zapis
- End If
- If Kolo > 255 Then
- Goto Zapis
- End If
- Cls
- Goto Skok
- End If
- Loop ' zmienna Dword Kolo przyjmuje wartość dziesiętną val(wartosc)
- Return
- ' edycja Wartosc działa tylko w jednym kierunku....jeśli przekroczę zakres 255 , program ma nie przyjąć tych danych ;-)
- Dta: '0.....1.....2.....3.....4.....5.....6.....7.....8.....9....10....11....12....13....14....15
- Data "1" , "2" , "3" , " " , "4" , "5" , "6" , " " , "7" , "8" , "9" , " " , " " , "0" , " " , " "
- 'Tablica zmodyfikowana dla klawiatury 3x4 :-)
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Pomiar pH wody - budowa sterownika do akwarium
@Henryk, dzięki za kod
Wracając do mojego sterownika i odczytów pH...
Kombinowałem na przeróżne sposoby - zasilacze, kody etc. Odczyt zawsze sobie skakał, mniej lub bardziej, ale nie nadawało się to do sterowania elektrozaworem CO2
Chciałem się dowiedzieć czy coś jest nie tak z tym modułem pH czy ja naprawdę coś źle robię - pomijałem już kod do odczytu bo użyłem ich tyle różnych, że głowa mała. Kupiłem części i zmontowałem wszytko według schematu:
Co się okazało? Odczyty już nie skaczą (sonda w akwarium) czyli ten moduł (nawet dwa) który kupiłem jest o kant du** rozbić - szkoda mi tylko mojego i Waszego czasu który przepadł na uruchomienie tego badziewia.
Teraz odczyt co jakiś czas sobie skoczy 0.01-0.03, ale to już zwalam na sposób połączenia wszystkiego - płytka stykowa:
Sondę odczytuję co 10ms, a przeliczenia na pH robię co 1s kodem bez Dominaty
Jeszcze muszę pomęczyć temat odczytu ADC, ogarnąć MENU, posprzątać cały kod i jak wszytko będzie OK trzeba będzie zrobić PCB
Wracając do mojego sterownika i odczytów pH...
Kombinowałem na przeróżne sposoby - zasilacze, kody etc. Odczyt zawsze sobie skakał, mniej lub bardziej, ale nie nadawało się to do sterowania elektrozaworem CO2
Chciałem się dowiedzieć czy coś jest nie tak z tym modułem pH czy ja naprawdę coś źle robię - pomijałem już kod do odczytu bo użyłem ich tyle różnych, że głowa mała. Kupiłem części i zmontowałem wszytko według schematu:
Co się okazało? Odczyty już nie skaczą (sonda w akwarium) czyli ten moduł (nawet dwa) który kupiłem jest o kant du** rozbić - szkoda mi tylko mojego i Waszego czasu który przepadł na uruchomienie tego badziewia.
Teraz odczyt co jakiś czas sobie skoczy 0.01-0.03, ale to już zwalam na sposób połączenia wszystkiego - płytka stykowa:
Sondę odczytuję co 10ms, a przeliczenia na pH robię co 1s kodem bez Dominaty
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m8def.dat"
- $crystal = 8000000
- $hwstack = 40
- $swstack = 16
- $framesize = 32
- $sim
- 'OZNACZA PRZYGOTOWANIE KODU DO SYMULACJI - USUNĄĆ DLA PRAWDZIWEGO MIKROKONTROLERA
- Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
- Config Lcd = 16x2
- Deflcdchar 0 , 32 , 32 , 14 , 17 , 31 , 16 , 14 , 1
- Deflcdchar 2 , 32 , 32 , 14 , 1 , 15 , 17 , 15 , 1
- Cursor Off
- Cls
- Config Adc = Single , Prescaler = Auto , Reference = Avcc
- Dim Adc_read As Word
- Dim Suma As Dword
- Dim Wynik As Word
- Dim Help As Dword
- Do
- Adc_read = Getadc(0)
- Help = Suma
- Shift Help , Right , 3
- Suma = Suma - Help
- Suma = Suma + Adc_read
- Help = Suma
- Shift Help , Right , 3
- Wynik = Help
- Locate 1 , 1 : Lcd Wynik ; " "
- Loop
- End
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Pomiar pH wody - budowa sterownika do akwarium
To znowu ja
Musiałem zrobić sobie małą przerwę ze swoją zabawką, a ponownym spojrzeniu na to naszły mnie myśli aby zmienić wewnętrzny przetwornik ADC ATmegi328 na zewnętrzny ADS1x15 - "x" z powodu, że mam w domu moduł ADS1015 czyli 12 bitowy, ale zamówiłem w Chinach ADS1115 czyli 16 bitowy.
No to do sedna... Podpowiedzcie mi jak się tym posługiwać? Z tego co wyczytałem to ADS1015 ma 12 bit ale przy pomiarze +/-2.048V (to niby można zmienić) więc jak dobrze rozumiem gdybym chciał robić pomiary dodatnie to mam do dyspozycji tylko 11 bit - to i tak lepiej niż 10 bit ATmegi
Znalazłem w Internecie kod dla ADS1115, ale ADS1015 też z tym działa. Nie mam pojęcia jak to skonfigurować.
Nie mogę zrozumieć jak to jest z tym napięciem odniesienia (ADS ma własne wbudowane) W kodzie można sobie wybrać FSR: 6.144V, 4.096V, 2.048V, 1.024V, 0.512V i 0.256V czy to znaczy, że mogę sobie wybrać to napięcie odniesienia?
Najbardziej interesowałby mnie pomiar 12 bit napięcia 0-0.512V - jako, że tylko napięcie dodatnie więc 11 bit czyli 0-2048 więc rozdzielczość 0.0002V (docelowo ADS1115 więc 0,00001V) Teraz swój pomiar musiałbym rozciągnąć do 1.1V (Vref ATmegi) co przy 10 bitach dałoby mi rozdzielczość 0.001V
Musiałem zrobić sobie małą przerwę ze swoją zabawką, a ponownym spojrzeniu na to naszły mnie myśli aby zmienić wewnętrzny przetwornik ADC ATmegi328 na zewnętrzny ADS1x15 - "x" z powodu, że mam w domu moduł ADS1015 czyli 12 bitowy, ale zamówiłem w Chinach ADS1115 czyli 16 bitowy.
No to do sedna... Podpowiedzcie mi jak się tym posługiwać? Z tego co wyczytałem to ADS1015 ma 12 bit ale przy pomiarze +/-2.048V (to niby można zmienić) więc jak dobrze rozumiem gdybym chciał robić pomiary dodatnie to mam do dyspozycji tylko 11 bit - to i tak lepiej niż 10 bit ATmegi
Znalazłem w Internecie kod dla ADS1115, ale ADS1015 też z tym działa. Nie mam pojęcia jak to skonfigurować.
Nie mogę zrozumieć jak to jest z tym napięciem odniesienia (ADS ma własne wbudowane) W kodzie można sobie wybrać FSR: 6.144V, 4.096V, 2.048V, 1.024V, 0.512V i 0.256V czy to znaczy, że mogę sobie wybrać to napięcie odniesienia?
Najbardziej interesowałby mnie pomiar 12 bit napięcia 0-0.512V - jako, że tylko napięcie dodatnie więc 11 bit czyli 0-2048 więc rozdzielczość 0.0002V (docelowo ADS1115 więc 0,00001V) Teraz swój pomiar musiałbym rozciągnąć do 1.1V (Vref ATmegi) co przy 10 bitach dałoby mi rozdzielczość 0.001V
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- 'ADS1115 16Bit A/D Wandler
- $regfile = "m328pdef.dat"
- $crystal = 16000000
- $hwstack = 32
- $swstack = 32
- $framesize = 32
- '
- Dim N As Byte
- Dim High_byte(4) As Byte
- Dim Low_byte(4) As Byte
- Dim Ads_high(4) As Byte
- Dim Ads_low(4) As Byte
- Dim Volt(4) As Single
- Dim Wert(4) As Integer
- Config Sda = Portc.4 'I2C-Pins definieren
- Config Scl = Portc.5
- Dim Lcd_backlight As Byte
- $lib "YwRobot_Lcd_i2c.lIb"
- Const Pcf8574_lcd = 64 'Adresse LCD
- Config Lcd = 20x4 '40x4,16x1, 16x2, 16x4, 16x4, 20x2, 20x4, 16x1a or 20x4A.
- Config I2cdelay = 2
- Initlcd 'LCD initialisieren
- Cursor Off Noblink 'Noblink , Blink, On, Off
- Cls
- Waitms 300
- 'Adresse ADS1115 Adresspin = low
- Const Ads1115_write = &H90
- Const Ads1115_read = &H91
- 'Const Ad_wert = 1.024 / 32767 '1024
- 'Const Ad_wert = 2.048 / 32767 '2048
- 'Const Ad_wert = 4.096 / 32767 '4096
- Const Ad_wert = 6.144 / 32767 '6144
- 'High Byte
- 'Bit 15 Operational status
- 'When writing
- 'No effect = &B0xxxxxxx xxxxxxxx
- 'Start a single conversion = &B1xxxxxxx xxxxxxxx
- 'When reading
- 'Device is currently performing a conversion = &B0xxxxxxx xxxxxxxx
- 'Device is not currently performing a conversion = &B1xxxxxxx xxxxxxxx
- 'Bit 14..12 Input Multiplexer configuration
- 'Ain0+Ain1= &Bx000xxxx xxxxxxxx default
- 'Ain0+Ain3= &bx001xxxx xxxxxxxx
- 'Ain1+Ain3= &Bx010xxxx xxxxxxxx
- 'Ain2+Ain3= &bx011xxxx xxxxxxxx
- 'Ain0+GND= &Bx100xxxx xxxxxxxx
- 'Ain1+GND= &Bx101xxxx xxxxxxxx
- 'Ain2+GND= &Bx110xxxx xxxxxxxx
- 'Ain3+GND= &Bx111xxxx xxxxxxxx
- 'Bit 11..9 Gain amplifier configuration
- 'FSR 6.144V= &Bxxxx000x xxxxxxxx
- 'FSR 4.096V= &Bxxxx001x xxxxxxxx
- 'FSR 2.048V= &Bxxxx010x xxxxxxxx default
- 'FSR 1.024V= &Bxxxx011x xxxxxxxx
- 'FSR 0.512V= &Bxxxx100x xxxxxxxx
- 'FSR 0.256V= &Bxxxx101x xxxxxxxx
- 'FSR 0.256V= &Bxxxx110x xxxxxxxx
- 'FSR 0.256V= &Bxxxx111x xxxxxxxx
- 'Bit 8 Device operating mode
- 'Continuous-conversion mode = &Bxxxxxxx0 xxxxxxxx
- 'Single-Shot mode = &Bxxxxxxx1 xxxxxxxx default
- '------------------------------------------------------------------------
- 'Low Byte
- 'Bit 7..5 Data Rate
- ' 8SPS= &Bxxxxxxxx 000xxxxx
- ' 16SPS= &Bxxxxxxxx 001xxxxx
- ' 32SPS= &Bxxxxxxxx 010xxxxx
- ' 64SPS= &Bxxxxxxxx 011xxxxx
- '128SPS= &Bxxxxxxxx 100xxxxx default
- '250SPS= &Bxxxxxxxx 101xxxxx
- '475SPS= &Bxxxxxxxx 110xxxxx
- '860SPS= &Bxxxxxxxx 111xxxxx
- 'Bit 4 Comparator Mode
- 'Traditonal = &Bxxxxxxxx xxx0xxxx default
- 'Window = &Bxxxxxxxx xxx1xxxx
- 'Bit 3 Comparator polarity
- 'Active low = &Bxxxxxxxx xxxx0xxx default
- 'Active high= &Bxxxxxxxx xxxx1xxx
- 'Bit 2 Latching Comparator
- 'Nonlatching = &Bxxxxxxxx xxxxx0xx default
- 'Latching = &Bxxxxxxxx xxxxx1xx
- 'Bit 1.0 Comparator queue and disable
- 'Assert after one conversion = &Bxxxxxxxx xxxxxx00
- 'Assert after two conversiosn = &Bxxxxxxxx xxxxxx01
- 'Assert after four conversions = &Bxxxxxxxx xxxxxx10
- 'Disable Comparator = &Bxxxxxxxx xxxxxx11 default
- High_byte(1) = &B11000000
- High_byte(2) = &B11010000
- High_byte(3) = &B11100000
- High_byte(4) = &B11110000
- Low_byte(1) = &B00000000
- Low_byte(2) = &B00000000
- Low_byte(3) = &B00000000
- Low_byte(4) = &B00000000
- '******************* Hauptprogramm *************************************
- Do
- For N = 1 To 4
- Gosub On_ads1115 'ADS1115 auslesen
- Wert(n) = 256 * Ads_high(n) : Wert(n) = Wert(n) + Ads_low(n)
- Volt(n) = Ad_wert * Wert(n)
- Locate N , 1 : Lcd " "
- Locate N , 1 : Lcd Fusing(volt(n) , "#.######") ; " Volt"
- Waitms 250
- Next
- Loop
- End
- '***************** Ende Hauptprogramm **********************************
- On_ads1115:
- I2cstart
- I2cwbyte Ads1115_write
- I2cwbyte &B00000001
- I2cwbyte High_byte(n)
- I2cwbyte Low_byte(n)
- I2cstop
- I2cstart
- I2cwbyte Ads1115_write
- I2cwbyte 0
- I2cstart
- I2cwbyte Ads1115_read
- I2crbyte Ads_high(n) , Ack
- I2crbyte Ads_low(n) , Nack
- I2cstop
- Return
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Pomiar pH wody - budowa sterownika do akwarium
Pisze softy od rana do nocy..jak nie weekenduję ahahaha oczywiście, ale...
bardzo chętnie Tobie pomogę, jak napiszesz konkretnie czego nie rozumiesz z noty katalogowej, jakiś rejestr, jakieś ustawienie..ale przytoczenie softu z niemieckiej strony nie oznacza, że próbowałeś zgłębić temat.
Rozumiem że masz taki ADC w domu i taki byś chciał wykorzystać, dla mnie tez by to było naturalne. Niestety wcześniej się z nim nie spotkałem.
Napisze inaczej. Pytaj o konkrety z noty których nie rozumiesz to postaram się pomóc chociaż wcale nie czuję się tu kimś, po prostu co dwie głowy to nie jedna.
Natomiast mam kilka opanowanych ADC do których jeszcze nie opublikowałem bibliotek, po prostu z natłoku pracy, ale mógłbym je polecić.
Tak więc ''ADC które masz w domu->rozszyfrujemy raz na zawsze", albo idziemy na łatwiznę i kupisz cos nowego, taniego do czego jest gotowy soft
-Twój wybór
bardzo chętnie Tobie pomogę, jak napiszesz konkretnie czego nie rozumiesz z noty katalogowej, jakiś rejestr, jakieś ustawienie..ale przytoczenie softu z niemieckiej strony nie oznacza, że próbowałeś zgłębić temat.
Rozumiem że masz taki ADC w domu i taki byś chciał wykorzystać, dla mnie tez by to było naturalne. Niestety wcześniej się z nim nie spotkałem.
Napisze inaczej. Pytaj o konkrety z noty których nie rozumiesz to postaram się pomóc chociaż wcale nie czuję się tu kimś, po prostu co dwie głowy to nie jedna.
Natomiast mam kilka opanowanych ADC do których jeszcze nie opublikowałem bibliotek, po prostu z natłoku pracy, ale mógłbym je polecić.
Tak więc ''ADC które masz w domu->rozszyfrujemy raz na zawsze", albo idziemy na łatwiznę i kupisz cos nowego, taniego do czego jest gotowy soft
-Twój wybór
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Pomiar pH wody - budowa sterownika do akwarium
Nie do końca rozumiem co piszą w nocie i stąd problemy
Kod który wkleiłem działa, ale chcę zmienić ustawienia układu.
Tak konkretnie to chcę robić pomiar 0-0.512V z jak największą dokładnością, raz na sekundę - wystarczy odczyt ADC bo z przeliczeniem sobie poradzę. Potrzebuję tylko jeden kanał - w module można robić pomiary z czterech kanałów lub dwóch różnicowych (nie wiem co lepiej wybrać)
.
.
Która wartość to jest odczytane ADC: "Ads_low" czy "Ads_high"?
Kod który wkleiłem działa, ale chcę zmienić ustawienia układu.
Tak konkretnie to chcę robić pomiar 0-0.512V z jak największą dokładnością, raz na sekundę - wystarczy odczyt ADC bo z przeliczeniem sobie poradzę. Potrzebuję tylko jeden kanał - w module można robić pomiary z czterech kanałów lub dwóch różnicowych (nie wiem co lepiej wybrać)
.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m328pdef.dat"
- $crystal = 16000000
- $hwstack = 32
- $swstack = 32
- $framesize = 32
- 'deklaracja podprogramów
- Config Submode = New
- 'wyświetlacz
- Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.1 , Rs = Portb.0
- Config Lcd = 16x2
- Cursor Off , Noblink
- Cls
- 'konfiguracja i2c
- $lib "i2c_twi.lbx"
- Config Sda = Portc.4
- Config Scl = Portc.5
- Config Twi = 100000
- 'zmienne programu
- Dim High_byte As Byte , Low_byte As Byte
- Dim Ads_high As Byte , Ads_low As Byte
- 'adres ADS
- Const Ads1115_write = &H90
- Const Ads1115_read = &H91
- High_byte = &B10000010
- 'bit 15 &B1xxxxxxx xxxxxxxx
- 'bit 14..12 &Bx000xxxx xxxxxxxx Ain0+Ain1
- 'bit 11..9 &Bxxxx100x xxxxxxxx FSR 0.512V
- 'bit 8 &Bxxxxxxx0 xxxxxxxx
- Low_byte = &B10000011
- 'Bit 7..5 &Bxxxxxxxx 100xxxxx 128SPS
- 'Bit 4 &Bxxxxxxxx xxx0xxxx
- 'Bit 3 &Bxxxxxxxx xxxx0xxx
- 'Bit 2 &Bxxxxxxxx xxxxx0xx
- 'Bit 1..0 &Bxxxxxxxx xxxxxx11
- Sub Ads_ustaw
- I2cstart
- I2cwbyte Ads1115_write
- I2cwbyte &B00000001
- I2cwbyte High_byte
- I2cwbyte Low_byte
- I2cstop
- I2cstart
- I2cwbyte Ads1115_write
- I2cwbyte 0
- I2cstop
- End Sub
- Sub Ads_odczyt
- I2cstart
- I2cwbyte Ads1115_read
- I2crbyte Ads_high , Ack
- I2crbyte Ads_low , Nack
- I2cstop
- End Sub
- Call Ads_ustaw
- Do
- Call Ads_odczyt
- Locate 1 , 1 : Lcd Ads_low ; " "
- Locate 2 , 1 : Lcd Ads_high ; " "
- Loop
- End
Która wartość to jest odczytane ADC: "Ads_low" czy "Ads_high"?