Forum www.nestor-electronic.pl Strona Główna www.nestor-electronic.pl
Forum sterowników procesorowych- programy BASCOM
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Woltomierz i mały błąd

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.nestor-electronic.pl Strona Główna -> Pomoc w programowaniu BASCOM
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Sob Mar 28, 2009 7:54 pm    Temat postu: Woltomierz i mały błąd Odpowiedz z cytatem

Witam. możecie mi pomóc w tym: mam gdzieś błąd i nie wiem gdzie. do zabezpieczenia jest dobrze i dlaczego jak mam napis ,,URSUS C-360 3P" to na końcu mam ,,_" jak jej nie mam wpisanej. tak samo jest z 00.00 to zamiast ostatniego 0 jest kreseczka

$regfile = "m8def.dat" 'informuje kompilator o pliku
'dyrektyw mikrokontrolera
$crystal = 8000000 'informuje kompilator




Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2

Config Adc = Single , Prescaler = Auto , Reference = Internal



Config Watchdog = 2048 'reset wystąpi po 8192 ms
'Start Watchdog






Declare Sub Odcz_temp



' Config Portc.1 = Output
Config Portb.2 = Output 'wyjścia przekazników

Config Pinb.3 = Input 'porty jako wejściowe


Set Portb.3 ' ustawia na stan wysoki



Dim Wart_nap As Word
Dim Wart_nap1 As Word
Dim Wart_nap2 As String *
Dim Wart_nap22 As Word



Dim Wart_ac As Word
Dim Wart_ac1 As Word


Dim V As Single
Dim V1 As Single



Dim Adres As Byte , Command As Byte

Enable Interrupts
' Set Portb.3 = Input


Cls
Lcd "Witam serdecznie" 'tu wpisujesz dowolny napis
Lowerline
Lcd "URSUS C-360 3P" 'tu też dowolny napis

Wait 5 ' tu stawiasz czasu wyswietlania powitania w sekundach

Cls
Start Adc

Do


'czytam pierwszy czujnik
'waitms 20
Wart_ac = Getadc(0)
V = Wart_ac * 00.00


Reset Watchdog

Cls



Lcd "Napiecie:" ; V
Reset Watchdog
Waitms 1500
Reset Watchdog
Cls

Reset Watchdog

Cls

If V < 13.00 Then 'Temperatura Przy Której Załancza Sie Mruganie Podsiwtlania Wyswiatlacza
Toggle Portb.1
Toggle Portd.0 ' załanczam brzeczyk
Loop
End If
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Scofield
Lekko zaangażowany


Dołączył: 19 Gru 2008
Posty: 48
Skąd: -----

PostWysłany: Sob Mar 28, 2009 8:39 pm    Temat postu: Odpowiedz z cytatem

Bo w programie nie masz wyłączonego kursora, który standardowo jest włączony. Można go wyłączyć komendą: Cursor Off Noblink
Czyli Twój kod powinien wyglądać mniej więcej tak:

Kod:
$regfile = "m8def.dat" 'informuje kompilator o pliku
'dyrektyw mikrokontrolera
$crystal = 8000000 'informuje kompilator




Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2

Config Adc = Single , Prescaler = Auto , Reference = Internal



Config Watchdog = 2048 'reset wystąpi po 8192 ms
'Start Watchdog






Declare Sub Odcz_temp



' Config Portc.1 = Output
Config Portb.2 = Output 'wyjścia przekazników

Config Pinb.3 = Input 'porty jako wejściowe


Set Portb.3 ' ustawia na stan wysoki



Dim Wart_nap As Word
Dim Wart_nap1 As Word
Dim Wart_nap2 As String *
Dim Wart_nap22 As Word



Dim Wart_ac As Word
Dim Wart_ac1 As Word


Dim V As Single
Dim V1 As Single



Dim Adres As Byte , Command As Byte

Cursor Off Noblink    'Wyłącznie kursora "_"

Enable Interrupts
' Set Portb.3 = Input


Cls
Lcd "Witam serdecznie" 'tu wpisujesz dowolny napis
Lowerline
Lcd "URSUS C-360 3P" 'tu też dowolny napis

Wait 5 ' tu stawiasz czasu wyswietlania powitania w sekundach

Cls
Start Adc

Do


'czytam pierwszy czujnik
'waitms 20
Wart_ac = Getadc(0)
V = Wart_ac * 00.00


Reset Watchdog

Cls



Lcd "Napiecie:" ; V
Reset Watchdog
Waitms 1500
Reset Watchdog
Cls

Reset Watchdog

Cls

If V < 13.00 Then 'Temperatura Przy Której Załancza Sie Mruganie Podsiwtlania Wyswiatlacza
Toggle Portb.1
Toggle Portd.0 ' załanczam brzeczyk
Loop
End If
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Sob Mar 28, 2009 8:43 pm    Temat postu: Odpowiedz z cytatem

a jak odpalić ten buzzer?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Scofield
Lekko zaangażowany


Dołączył: 19 Gru 2008
Posty: 48
Skąd: -----

PostWysłany: Sob Mar 28, 2009 8:50 pm    Temat postu: Odpowiedz z cytatem

Spróbuj tak:
Kod:
Sound Portd.0 , 150 , 500 ' załanczam brzeczyk


Ja mam głośniczek z słuchawki, z telefonu stacjonarnego w swoim budziku podpięty jednym wyjściem do mikrokontrolera, a drugim do GND i śmiga Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Sob Mar 28, 2009 8:51 pm    Temat postu: Odpowiedz z cytatem

Do


'czytam pierwszy czujnik
'waitms 20
Wart_ac = Getadc(0)
V = Wart_ac * 00.00


Reset Watchdog
tu chyba mam jakiś błąd
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Scofield
Lekko zaangażowany


Dołączył: 19 Gru 2008
Posty: 48
Skąd: -----

PostWysłany: Sob Mar 28, 2009 9:12 pm    Temat postu: Odpowiedz z cytatem

Dlaczego ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Scofield
Lekko zaangażowany


Dołączył: 19 Gru 2008
Posty: 48
Skąd: -----

PostWysłany: Sob Mar 28, 2009 9:29 pm    Temat postu: Odpowiedz z cytatem

Kod:

$regfile = "m8def.dat" 'informuje kompilator o pliku
'dyrektyw mikrokontrolera
$crystal = 8000000 'informuje kompilator




Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2

Config Adc = Single , Prescaler = Auto , Reference = Internal



Config Watchdog = 2048 'reset wystąpi po 8192 ms
'Start Watchdog






Declare Sub Odcz_temp



' Config Portc.1 = Output
Config Portb.2 = Output 'wyjścia przekazników

Config Pinb.3 = Input 'porty jako wejściowe


Set Portb.3 ' ustawia na stan wysoki



Dim Wart_nap As Word
Dim Wart_nap1 As Word
Dim Wart_nap2 As String *
Dim Wart_nap22 As Word



Dim Wart_ac As Word
Dim Wart_ac1 As Word


Dim V As Single
Dim V1 As Single



Dim Adres As Byte , Command As Byte

Cursor Off Noblink    'Wyłącznie kursora "_"

Enable Interrupts
' Set Portb.3 = Input


Cls
Lcd "Witam serdecznie" 'tu wpisujesz dowolny napis
Lowerline
Lcd "URSUS C-360 3P" 'tu też dowolny napis

Wait 5 ' tu stawiasz czasu wyswietlania powitania w sekundach

Cls
Start Adc

Do


'czytam pierwszy czujnik
'waitms 20
Wart_ac = Getadc(0)
V = Wart_ac * 00.00


Reset Watchdog

Cls



Lcd "Napiecie:" ; V
Reset Watchdog
Waitms 1500
Reset Watchdog
Cls

Reset Watchdog

Cls

If V < 13.00 Then 'Temperatura Przy Której Załancza Sie Mruganie Podsiwtlania Wyswiatlacza
Toggle Portb.1 'Włączenie/wyłącznie wyświetlacza
Sound Portd.0 150, 500 ' załanczam brzeczyk
Waitms 100
Loop
End If



Musisz dowiedzieć się do jakich portów masz podłączone urządzenia i buzzer i lcd, wtedy pozmieniaj je w kodzie i spróbuj czy działa.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Sob Mar 28, 2009 11:10 pm    Temat postu: Odpowiedz z cytatem

nadal mam problem z wyświetlaniem liczby. chce aby było 00.00 a jest 0.76832 i się ciągle zmienia. czemu tak jest?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Nie Mar 29, 2009 8:23 pm    Temat postu: Odpowiedz z cytatem

podłącz do masy wejście prze rezystor powiedzmu 200 kilo i nie bdzie Ci skakało
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Pon Mar 30, 2009 7:26 pm    Temat postu: Odpowiedz z cytatem

ale jak mam przestawić ten przecinek?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Pon Mar 30, 2009 8:29 pm    Temat postu: Odpowiedz z cytatem

pomnóż przez na przyłąd tysiąc i po sprawie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Wto Mar 31, 2009 7:32 pm    Temat postu: Odpowiedz z cytatem

$regfile = "m8def.dat" 'informuje kompilator o pliku
'dyrektyw mikrokontrolera
$crystal = 8000000 'informuje kompilator




Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2

Config Adc = Single , Prescaler = Auto , Reference = Internal



Config Watchdog = 2048 'reset wystąpi po 8192 ms
'Start Watchdog






Declare Sub Odcz_temp



Config Portc.1 = Output
Config Portb.2 = Output 'wyjścia przekazników

Config Pinb.3 = Input 'porty jako wejściowe


Set Portb.3 ' ustawia na stan wysoki



Dim Wart_nap As Word
Dim Wart_nap1 As Word
Dim Wart_nap2 As String *
Dim Wart_nap22 As Word



Dim Wart_ac As Word
Dim Wart_ac1 As Word


Dim V As Single
Dim V1 As Single



Dim Adres As Byte , Command As Byte

Cursor Off Noblink 'Wyłącznie kursora "_"

Enable Interrupts
' Set Portb.3 = Input


Cls
Lcd "Witam serdecznie" 'tu wpisujesz dowolny napis
Lowerline
Lcd "URSUS C-360 3P" 'tu też dowolny napis

Wait 5 ' tu stawiasz czasu wyswietlania powitania w sekundach

Cls
Start Adc

Do


'czytam pierwszy czujnik
'waitms 20
Wart_ac = Getadc(0)
V = Wart_ac * 0.026


Reset Watchdog

Cls



Lcd "Napiecie:" ; V
Reset Watchdog
Waitms 1500
Reset Watchdog
Cls

Reset Watchdog

Cls

If V <13> 15.00 Then
Toggle Portb.2
Waitms 1

Locate 1 , 1
Lcd "NADMIERNE ŁADOWANIE!!!"
Lowerline
Locate 2 , 2
Lcd "AWARIA"
End If ' załanczam brzec
Loop
dlaczego nie chce mi się wyświetlić napis madmierne ładowanie. przekaźnik się załącza a napisz nie zapala się. i jak mam zrobić, aby po przecinku wyświetlane były tylko dwie liczby?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Scofield
Lekko zaangażowany


Dołączył: 19 Gru 2008
Posty: 48
Skąd: -----

PostWysłany: Wto Mar 31, 2009 9:45 pm    Temat postu: Odpowiedz z cytatem

Kod:
$regfile = "m8def.dat" 'informuje kompilator o pliku
'dyrektyw mikrokontrolera
$crystal = 8000000 'informuje kompilator




Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2

Config Adc = Single , Prescaler = Auto , Reference = Internal



Config Watchdog = 2048 'reset wystąpi po 8192 ms
'Start Watchdog






Declare Sub Odcz_temp



Config Portc.1 = Output
Config Portb.2 = Output 'wyjścia przekazników

Config Pinb.3 = Input 'porty jako wejściowe


Set Portb.3 ' ustawia na stan wysoki



Dim Wart_nap As Word
Dim Wart_nap1 As Word
Dim Wart_nap2 As String *
Dim Wart_nap22 As Word



Dim Wart_ac As Word
Dim Wart_ac1 As Word


Dim V As Single
Dim V_z_zerem As String * 10
Dim V1 As Single



Dim Adres As Byte , Command As Byte

Cursor Off Noblink 'Wyłącznie kursora "_"

Enable Interrupts
' Set Portb.3 = Input


Cls
Lcd "Witam serdecznie" 'tu wpisujesz dowolny napis
Lowerline
Lcd "URSUS C-360 3P" 'tu też dowolny napis

Wait 5 ' tu stawiasz czasu wyswietlania powitania w sekundach

Cls
Start Adc

Do


'czytam pierwszy czujnik
'waitms 20
Wart_ac = Getadc(0)
V = Wart_ac * 0.026


Reset Watchdog

Cls

V_z_zerem = Fusing(v , "#.##")                              'W tej i kolejnej linijce następuje dodanie
V_z_zerem = Format(v_z_zerem , "00000")                     'na początku liczby - 0 np  z 1.02 na 01.02

Lcd "Napiecie:" ; V_z_zerem
Reset Watchdog
Waitms 1500
Reset Watchdog
Cls

Reset Watchdog

Cls

If V <13> 15.00 Then
Toggle Portb.2
Waitms 1

Locate 1 , 1
Lcd "NADMIERNE ŁADOWANIE!!!"
Lowerline
Locate 2 , 2
Lcd "AWARIA"
End If ' załanczam brzec
Loop


Mam do Ciebie jedno pytanie. Nie rozumiem o co chodzi w tej linijce kodu:
Kod:
If V <13> 15.00 Then

Jeżeli chcesz sprawdzić czy napięcie, które ładuje jest większe niż powinno być, to wystarczy napisać tak:
Kod:
If V > 13 Then

PS. W kodzie dodałem dwie linijki kodu gdzie jest dodawane 0 przed liczbą napięcia.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Wto Mar 31, 2009 11:09 pm    Temat postu: Odpowiedz z cytatem

Kod:
If V < 13.00 Then                                           'napięcie minimalne załączenia alarmu
Toggle Portb.2                                              'wyjście na sygnalizację
Waitms 1                                                    'czas

 Locate 1 , 1
 Lcd "BRAK LADOWANIA!!"                                     'dowolny napis ostrzegawczy
 Lowerline                                                  'dolna lina
 Locate 2 , 2
 Lcd "   *AWARIA*"                                          'dowolny napis linij dolnej


 Wait 1
 Locate 1 , 1
 Lcd ""

  End If
                                                   'koniec pętli
  Cls                                                       'czyszczenie ekranu
  Reset Watchdog
  Cls
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Wto Mar 31, 2009 11:10 pm    Temat postu: Odpowiedz z cytatem

Kod:
If V > 15.00 Then                                           'napięcie maksymalne załączenia alarmu
Toggle Portb.2                                              'wyjście na sygnalizację
Waitms 1

Locate 1 , 1                                                'lina górna
Lcd "NADMIERNE ŁADOWANIE!!!"
                                       'dowolny napis ostrzegawczy
Lowerline                                                   'lina dolna
Locate 2 , 2                                                'lina dolna
Lcd "AWARIA"                                                'dowolny napis ostrzegawczy dolnej linij
End If                                                      'koniec pętli
Loop
End
i tu nie chce mi działać polecenie wyświetlania napisu nadmierne ładowanie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Scofield
Lekko zaangażowany


Dołączył: 19 Gru 2008
Posty: 48
Skąd: -----

PostWysłany: Sro Kwi 01, 2009 6:34 am    Temat postu: Odpowiedz z cytatem

Coś pozmieniałem
Kod:
If V < 13.00 Then 'napięcie minimalne załączenia alarmu
Toggle Portb.2                                              'wyjście na sygnalizację
Cls
Locate 1 , 1
Lcd "BRAK LADOWANIA!!"                                      'dowolny napis ostrzegawczy
Locate 2 , 2
Lcd " *AWARIA* "                                            'dowolny napis linij dolnej


Wait 1                                                      'Nie wiem do czego służy ta i dwie kolejne linijki ?******
Locate 1 , 1
Lcd ""

End If
'koniec pętli
Cls 'czyszczenie ekranu
Reset Watchdog
Cls






If V > 15.00 Then                                           'napięcie maksymalne załączenia alarmu
Cls
Toggle Portb.2                                              'wyjście na sygnalizację

Locate 1 , 1 'lina górna
Lcd "NADMIERNE ŁADOWANIE"                                   '*****Tutaj może być maksymalnie 16 znaków*****
'dowolny napis ostrzegawczy
Locate 2 , 2 'lina dolna
Lcd "AWARIA" 'dowolny napis ostrzegawczy dolnej linij
End If 'koniec pętli
Loop
End


aha i prosiłbym abyś kod programu umieszczał w znacznikach code. Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Pon Kwi 06, 2009 10:20 am    Temat postu: Odpowiedz z cytatem

zrobiłem wszystko i nadal mam problem. jak podam zasilanie na wejście 2.2V to na wyświetlaczu się nic nie zmienia. czym to może być spowodowane?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Scofield
Lekko zaangażowany


Dołączył: 19 Gru 2008
Posty: 48
Skąd: -----

PostWysłany: Pon Kwi 06, 2009 4:13 pm    Temat postu: Odpowiedz z cytatem

A dzieje się coś jak dajesz wyższe, bądź niższe ??
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Pon Kwi 06, 2009 6:58 pm    Temat postu: Odpowiedz z cytatem

na płyci CDmasz program do odczytu napięcia na wejściach przetwornika popatrz dokładnie comasz w swoim programie inaczej a napewno znajdziesz błąd
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
Kamilo18
Nowy


Dołączył: 14 Mar 2009
Posty: 20

PostWysłany: Wto Kwi 07, 2009 9:17 am    Temat postu: Odpowiedz z cytatem

czy o to chodzi???
'czytam pierwszy czujnik
'waitms 20
Wart_ac = Getadc(0)
V = Wart_ac * 0.026
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Wto Kwi 07, 2009 8:30 pm    Temat postu: Odpowiedz z cytatem

może byc

choć programy sa posegregowane tematycznie i odpowiednio opisane
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.nestor-electronic.pl Strona Główna -> Pomoc w programowaniu BASCOM Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


Powered by phpBB © 2001, 2005 phpBB Group