Csinálgatok egy előfokot, melyben a poti helyére reléket meg ellenállásokat teszek. A problémám a relék kapcsoláskor hallható koppanás.
Kimásoltam egy másik topikból az idevágó beírásokat:
Rag
Kicsit technikai jellegű a kérdésem:
Ha a portra kiírok egy számot majd kicsit később egy másikat, akkor a második kiíráskor minden egyes lábra újra kiíródik az érték vagy csak a eltérő bitek?
Van közte egy rövid szünet?
pl
00000001, majd
00000010
vagy
00000001
00000000 (ez a rövid váltási rész)
00000010
Ezt azért kérdezem, mert relék kapcsolásakor van "koppanásom", mintha egy pillanatra elengedne mind.
Róbert:
Röviden:Nincsen.
Hosszabban: nem lehet hogy megrántja a tápot az új relé bekapcsolása?
Azaz
PortA=255 'mind bekapcsol
wait 5
PortA=2 'A 2. láb marad bekapcsolva
end
A programban a 2-es relé nem enged el. A reléken igaz ott van a 100V/0,1A-es védődióda? A reléket min keresztül kapcsolod? tranzisztornál védődióda, bázis ellenállás, porton fel/lehúzó ellenállás igaz nincsen?
Rag:
Kérdezgettem hozzáértőbbet és azt mondta, hogy a koppanásnak a relék meghúzási és elengedési ideje is lehet az oka. Ezért a reléket egyesével kell az új állapotba kapcsolni. Kicsit iskolai példának tűnik, de hogyan lehet leprogramozni??
6 biten 0-63-ig használom az értékeket.
Szerintem egy for ciklussal kellene bitenként végigmenni és összehasonlítani, hogy változott-e a bit. Közte egy 5 ms-os szünetet kellene tartani. (4ms-os elengedési ideje van egy ehez hasonló relének).
Hogyan lehet egy bitet kiválasztani egy 8 bites változóból?
Róbert:
Kód: Egész kijelölése
dim a as byte
A=128
if A.7=1 then print "a MSB=1"
if a.1=1 then print "a LSB=1"
[code]