Miernik napięcia i natężenia prądu

Pytania, kody i porady dotyczące nie tylko Bascom.
ODPOWIEDZ
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Miernik napięcia i natężenia prądu

Post autor: pimowo » 22 maja 2019, 22:20

kulamario pisze:
22 maja 2019, 18:25
Jak byś mógł udostępnić pliki do tego pomiaru i schemat to może w nocy na szybko bym zrobił płytkę i testy
Zbyt dużo do przerabiania w tym moim kodzie, a jak pokażę całość to się nie połapiesz ;)

Tak na szybko wymyśliłem coś takiego:
- pomiar napięcia do 40V
- pomiar natężenia do 1A

Rezystory dla napięcia 10k i 360k
rezystor.png
rezystor dla natężenia prądu to 0.1om
prad.png
No i kod:
  1. $regfile = "m328pdef.dat"
  2. $crystal = 16000000
  3. $hwstack = 64
  4. $swstack = 32
  5. $framesize = 128
  6.  
  7. Config Submode = New
  8.  
  9. Config Timer0 = Timer , Prescale = 1024 , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 1
  10. Enable Compare0a : On Compare0a Int_10ms Nosave : Compare0a = 155       '10ms @16MHz
  11.  
  12. Config Adc = Single , Prescaler = Auto , Reference = Internal
  13.  
  14. Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
  15. Config Lcd = 16x2
  16. Cursor Off , Noblink : Cls
  17.  
  18. Const Korekta_prad = 0.001
  19. Const Korekta_napiecie = 0.0397
  20. Const Ilosc_probek = 32
  21.  
  22. Config 1wire = Portd.4
  23. 1wreset
  24. 1wwrite &HCC
  25. 1wwrite &H44
  26.  
  27. Dim 10ms As Byte , 1s As Byte
  28. Dim Pomiar_wejscia As Word , Odczyt As Single , Krok As Byte
  29. Dim Amper As String * 5 , Volt As String * 5 , Watt As String * 5
  30. Dim Watt_volt As Single , Watt_amper As Single , Watt_x As Single
  31. Dim Odczyt_ds(2) As Byte , T As Integer , T1 As Single , Temp As String * 5
  32.  
  33. Sub Pomiary(byval Channel As Byte)
  34.  
  35.    Local Pomiar As Word : Pomiar = 0
  36.  
  37.    For Krok = 1 To Ilosc_probek
  38.  
  39.       Pomiar = Pomiar + Getadc(channel)
  40.  
  41.    Next
  42.  
  43.    Pomiar_wejscia = Pomiar / Ilosc_probek
  44.  
  45.    Select Case Channel
  46.  
  47.       Case 0
  48.  
  49.          Odczyt = Pomiar_wejscia * Korekta_prad
  50.          Watt_amper = Odczyt
  51.          Amper = Fusing(odczyt , "##.##")
  52.  
  53.       Case 1
  54.  
  55.          Odczyt = Pomiar_wejscia * Korekta_napiecie
  56.          Watt_volt = Odczyt
  57.          Volt = Fusing(odczyt , "##.##")
  58.  
  59.    End Select
  60.  
  61. End Sub
  62.  
  63. Sub Temperatura
  64.  
  65.    If Err = 0 Then
  66.  
  67.       1wreset
  68.       1wwrite &HCC
  69.       1wwrite &HBE
  70.  
  71.       Odczyt_ds(1) = 1wread(2)
  72.       T = Odczyt_ds(2)
  73.       Shift T , Left , 8
  74.       T = T + Odczyt_ds(1)
  75.       T1 = T * 0.0625
  76.  
  77.       Temp = Fusing(t1 , "###.#")
  78.  
  79.    Else
  80.  
  81.       Temp = "0.0"
  82.  
  83.    End If
  84.  
  85.    1wreset
  86.    1wwrite &HCC
  87.    1wwrite &H44
  88.  
  89. End Sub
  90.  
  91. Locate 1 , 1 : Lcd "  Power Supply  "
  92. Locate 2 , 1 : Lcd " 40V & 1A  v1.0 "
  93.  
  94. Wait 3 : Cls
  95.  
  96. Enable Interrupts
  97.  
  98. Do
  99.  
  100.    If 10ms = 1 Then
  101.  
  102.       10ms = 0
  103.  
  104.       Incr 1s
  105.  
  106.       If 1s = 100 Then
  107.  
  108.          1s = 0
  109.  
  110.          Call Pomiary(0)
  111.          Call Pomiary(1)
  112.          Call Temperatura
  113.  
  114.          Watt_x = Watt_volt * Watt_amper
  115.          Watt = Fusing(watt_x , "##.##")
  116.  
  117.          Locate 1 , 1 : Lcd "V:" ; Volt ; "  "
  118.          Locate 1 , 10 : Lcd "A:" ; Amper ; "  "
  119.          Locate 2 , 1 : Lcd "W:" ; Watt ; "  "
  120.          Locate 2 , 10 : Lcd "T:" ; Temp ; "  "
  121.  
  122.       End If
  123.  
  124.    End If
  125.  
  126. Loop
  127. End
  128.  
  129. Int_10ms:
  130.  
  131.    $asm
  132.    PUSH R24
  133.    !in R24, sreg
  134.    PUSH  R24
  135.    $end Asm
  136.  
  137.       10ms = 1
  138.  
  139. '---Tuned with NoSave Tool
  140.  
  141.    $asm
  142.    POP  R24
  143.    !out sreg, r24
  144.    POP R24
  145.    $end Asm
  146.  
  147. Return
*Kolegów @niveasoft i @Pikczu proszę o nieśmianie się z kodu bo ze mnie programista jak z koziej du** trąba. Kod powstał przy wieczornym piwku :lol:
Pikczu pisze:
22 maja 2019, 22:02
To narysuj w proteusie
Co to jest "Proteus"?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Pikczu
Posty: 389
Rejestracja: 17 sie 2015, 13:46
Lokalizacja: Dublin, Ireland
Kontakt:

Re: Miernik napięcia i natężenia prądu

Post autor: Pikczu » 22 maja 2019, 22:33

Wypasiony soft do symulacji układów.
Robisz tak, rysujesz schemat potem do wirtualnego procesora pakujesz swój kod z bascoma i oglądając na ekranie wszytko testujesz wypas.
Ale jest czasochłonny, tzn mniej niż robienie płytki lutowanie i cały ten meksyk z tym związany.
Ściąg z mojego dropboxa jest w linku 2 posty wyżej.
Patrz jaki wypas, dwa procesory, dwa różne kody i symulujesz wszystko na raz wraz z kilkoma oknami terminala :) kliknij żeby powiększyć
symulacja proteus.PNG
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
marekszy
Posty: 99
Rejestracja: 20 lis 2016, 20:21

Re: Miernik napięcia i natężenia prądu

Post autor: marekszy » 22 maja 2019, 22:39

Tak widzę że masz u siebie inaczej podpięty bocznik i pomiar robisz przed a masę masz połączoną na wyjściu i to jest problem, podłącz tak jak ma pimowo, a nie masz wszystko co się pisze w d...
i tylko się pytasz nic nie sprawdzając
marekszy
Posty: 99
Rejestracja: 20 lis 2016, 20:21

Re: Miernik napięcia i natężenia prądu

Post autor: marekszy » 22 maja 2019, 22:41

Panowie, to ma być miernik do zasilacza ,a nie multimetr
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Miernik napięcia i natężenia prądu

Post autor: pimowo » 22 maja 2019, 22:46

@Pikczu, dzięki za wyjaśnienie - program wygląda na naprawdę ciekawy. Wypróbuję go na pewno ;)
Awatar użytkownika
kulamario
Posty: 207
Rejestracja: 17 sie 2015, 20:05
Lokalizacja: Greystones
Kontakt:

Re: Miernik napięcia i natężenia prądu

Post autor: kulamario » 23 maja 2019, 0:45

marekszy
dałem 5V na ADC1 mam 50A na wyświetlaczu
marekszy
Posty: 99
Rejestracja: 20 lis 2016, 20:21

Re: Miernik napięcia i natężenia prądu

Post autor: marekszy » 23 maja 2019, 1:03

To. Teraz podłącz ten rezystor 0,1R i pomiar prądu wg rysunku pimowo
Awatar użytkownika
kulamario
Posty: 207
Rejestracja: 17 sie 2015, 20:05
Lokalizacja: Greystones
Kontakt:

Re: Miernik napięcia i natężenia prądu

Post autor: kulamario » 23 maja 2019, 1:10

Ożyło
ale pokazuje 0.4A gdzie powinno 1.76A
marekszy
Posty: 99
Rejestracja: 20 lis 2016, 20:21

Re: Miernik napięcia i natężenia prądu

Post autor: marekszy » 23 maja 2019, 1:15

Czyli co, prawidłowo czy jak?
Awatar użytkownika
kulamario
Posty: 207
Rejestracja: 17 sie 2015, 20:05
Lokalizacja: Greystones
Kontakt:

Re: Miernik napięcia i natężenia prądu

Post autor: kulamario » 23 maja 2019, 1:16

nie prawidłowo
powinno 1.76A

a pokazuje 0.4A
ODPOWIEDZ