» »

Arduino - razdalja

Arduino - razdalja

Roader_ ::

S pomočjo arduinota in HC-SR04 prižigam luči na stopnišču. 6x na sekundo preverjam razdaljo, in ko je razdalja manjša od širine stopnišča se luči prižgejo.
Vse dela okej čez dan, ponoči pa se luči same prižigajo. Senzor zazna kot nek šum in prebere vrednost ter prižiga na random celo noč luči.

Ima kdo idejo s čim zamenjat senzorje, da odpravim te težave? Gledal sem že senzorje z laserjem, ampak vsi potrebujejo odsevnik na drugi strani, kar pa ni izvedljivo.
Senzor gibanja spet ni možen, ker ta zaznava tudi ko greš samo mimo in ne po stopnicah, pa bi se ponovno prižigalo...

jype ::

Preveri, da imaš stabilno napajanje vse do HC-SR04, ker je to najbolj pogost vir šumov.

espacious ::

Kaj pa senzor gibanja prestavit oz. Fotocelico pre oz na prvo stopnico. Ko prekine vzge luc. Senzorjem se da kaksno obcutljivost spreminjat? Ne poznam doticnega senzorja.
LP, espacious

jype ::

HC-SR04 je zelo pogost ultrazvočni senzor.

Fotocelica je seveda zanesljivejša, a potrebuje odsevnik. Če potrebuješ večjo zanesljivost, lahko uporabiš laser:

https://www.adafruit.com/product/3317

DeeCoy ::

Ti senzorji imajo veliko napak, ki jih boš moral sfiltrirat.. Zajemi recimo 5 meritev, če so 3 manjše od širine potem prižgeš. Če boš opazoval vrednosti, včasih brezveze skočijo na 255

TheBlueOne ::

Tale senzor verjetno ni ne vem kako zanesljiv. Morda poskusi kaj v smislu HC-SR501, ga lahko stelas.

Lahko pa pri obstojecim zadevo spremenis tako, da recimo meris nonstop ali pa bolj pogosto in ne cakas na neko konico ampak reces, da mora signal biti nad neko vrednostjo recimo 0.3 s. Tako lahko odstranis nakljucne skoke vrednosti.

Roader_ ::

S tem senzorjem sem zgubil že ogromno živcev. Na protoboardu priklopljeno, testirano na desetine ur, vse ok, zmontirano na stopnišče, ni nič delalo :)

jype @ Senzor je napajan po svojem vodu iz enakega napajalnika (50w) kot vsi led traki in arduino. Morda poizkusim in dam ločen napajalnik za senzorja?
Preverim še tale laser ki si ga objavil. Pač rabim neko zadevo ki mi bo zaznala prekinitev, nič druga.

espacious @ senzorji so na višini 30cm nad prvo stopnico na steni. Na nasprotni strani ni nič oz. morda v enem primeru stebriček od ograje, zato mi na nasprotni strani ni možnosti zmontirat odsevnika.

DeeCoy @ režem vse vrednosti, ki so višje od 80cm kot je širina stopnišča. Problem je, ko mi senzor odčita neko vmesno vrednost. Sem dodal potem še v kodo, da če se ista vrednost 2x zapored ponovi (finta je, da mi program vžiga ledice zaporedno za vsako stopnico posebej - cca 16 stopnic) in proces traja 12sekund, da jih potem v nasprotnem vrstnem redu še vgasne. Če ponovno zazna enako vrednost - v 99% gre za napako senzorja - resetiram cel arduino in je zadeva za par minut rešena - se ne ponovi.

TheBlueOne @ HC-SR501 sem želel uporabit že na začetku, a je problem, ker so senzorji zastavljeni tako, da se prižgejo šele ko stopiš na prvo stopnico (zgoraj ali spodaj). S HC-SR501 pa bi me zaznalo že prej.

TheBlueOne ::

Merjenje 6x/s na vsak nacin ni najbolj pametno. Meri ves cas in uporabi recimo povprecje pol sekunde meritev. To praviloma dovolj stabilizira zanic senzorje. Uporabljamo podobne metode tudi v highend sistemih, kjer situacija to dopusca.

https://www.arduino.cc/en/tutorial/smoo...

Zgodovina sprememb…

Roader_ ::

TheBlueOne @ hvala, bom spremenil logiko. Tak sistem bi mi znal odpravit še kako drugo napako :) javim ugotovitve...

Roader_ ::

TheBlueOne @ sem včeraj predelal program in vključil smoothing, testiral čez noč, za enkrat so rezultati vrhunski - nobenega napačnega prižiganja. Naložim danes v "produkcijo". javim rezultate... Hvala še enkrat.

polozweii ::

Nekdo je kupil luč ki si jo prižgal s tem ko si šel mimo z roko - ni se bilo potrebno dotaknit. Problem je bil v tem da se je luč prižigala kar sama od sebe sredi noči.
Ko je luč poskusil nekdo v drugem kraju, problemov s samodejnim nočnim prižiganjem ni bilo. Iz tega bi sklepali da je lahko težava na omrežju. Mogoče so to ta nihanja ki jih povzroči Elektro z zmanjševanjem energije zaradi manjše porabe energije ponoči.

Zgodovina sprememb…

  • spremenilo: polozweii ()

Stikalo ::

Lahko uporabiš ToF senzor.. recimo VL53L0X.

steev ::

polozweii je izjavil:

Nekdo je kupil luč ki si jo prižgal s tem ko si šel mimo z roko - ni se bilo potrebno dotaknit. Problem je bil v tem da se je luč prižigala kar sama od sebe sredi noči.
Ko je luč poskusil nekdo v drugem kraju, problemov s samodejnim nočnim prižiganjem ni bilo. Iz tega bi sklepali da je lahko težava na omrežju. Mogoče so to ta nihanja ki jih povzroči Elektro z zmanjševanjem energije zaradi manjše porabe energije ponoči.

A to je bilo vprašanje?
Drugače imaš pa verjetno prav glede tega, da prihaja iz omrežja. Samo nima pa veze z spreminjanjem moči v omrežju, ker to se dogaja non-stop. Pač proizvodnjo energije se vedno prilagaja trenutni porabi.
:|

TheBlueOne ::

Roader_ je izjavil:

TheBlueOne @ sem včeraj predelal program in vključil smoothing, testiral čez noč, za enkrat so rezultati vrhunski - nobenega napačnega prižiganja. Naložim danes v "produkcijo". javim rezultate... Hvala še enkrat.


N.p. :)

link_up ::

Lepo da je uspelo. Vedno se posluzuj tega, kjer se lahko. Drugace imas prevec prostega casa na procu...itak! :)
In and Out

TheBlueOne ::

link_up je izjavil:

Lepo da je uspelo. Vedno se posluzuj tega, kjer se lahko. Drugace imas prevec prostega casa na procu...itak! :)


Saj je namensko uporabljen, tako da resursov ne potrebujes za kaj drugega. Drugace pa pri teh sistemih ni kakor pri PCjih in gledas bolj case cikla. Ce je malo vec kode se ne poti kaj dosti bolj. V tem primeru prakticno tratis resurse, ce jih ne pokuris. :) Pri ATmega328 imas menda 30kilo za program, ce ni poln imas predober mikrokontroler.

Analogni read ga menda upocasni za 100 mikrosekund.

Zgodovina sprememb…

link_up ::

TheBlueOne je izjavil:

link_up je izjavil:

Lepo da je uspelo. Vedno se posluzuj tega, kjer se lahko. Drugace imas prevec prostega casa na procu...itak! :)


Saj je namensko uporabljen, tako da resursov ne potrebujes za kaj drugega. Drugace pa pri teh sistemih ni kakor pri PCjih in gledas bolj case cikla. Ce je malo vec kode se ne poti kaj dosti bolj. V tem primeru prakticno tratis resurse, ce jih ne pokuris. :) Pri ATmega328 imas menda 30kilo za program, ce ni poln imas predober mikrokontroler.

Analogni read ga menda upocasni za 100 mikrosekund.


se enkrat...drugace imas prevec prostega casa na procu. :)
Nagib je torej proti uporabi ciklov, ker ja kuri skoraj enako. :)
In and Out

Zgodovina sprememb…

  • spremenilo: link_up ()

TheBlueOne ::

link_up je izjavil:



se enkrat...drugace imas prevec prostega casa na procu. :)
Nagib je torej proti uporabi ciklov, ker ja kuri skoraj enako. :)


Ne no,... :)

Nimas nic prostega casa. Mikrokontroler dela cikle kolikor jih lahko hitro.

Nic ne pridobis, ce jih dela hitreje, razen ce potrebujes eksplicitno to, recimo za kak senzor, ki recimo steje hitre rotacije.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Napotitev vojske brez formalne napovedi vojne?

Oddelek: Problemi človeštva
161502 (902) Smrekar1
»

TEHNIČNA POMOČ

Oddelek: Pomoč in nasveti
172325 (1468) Machete
»

MARATON - slušalke

Oddelek: Kaj kupiti
212579 (1729) MiSiSa
»

Tranzistorji

Oddelek: Elektrotehnika in elektronika
193048 (1333) bosmla
»

Senzor

Oddelek: Elektrotehnika in elektronika
5873 (773) primozic111

Več podobnih tem