Autolaturi mökille varavoimaksi Arduinon avulla

Itse huomannut lähes kaikessa koodaamisessa että kun tavallaan valmis koodi on niin kannattaa aloittaa alusta kun tiedetään tarkasti miten koodi on ajateltu toimivaksi itsellä ainakin tällä kerralla välistä jää paljon turhaa koodia pois enkä ole kertaakaan saanut koodia toimimaan laakista.
 
No tässä olisi tällainen vuokaavio tästä ohjaussysteemistä. Jos tarvii tarkentaa jotain kohtaa, kertokaa niin päivitän kaavion.

Laturi State Machine.jpg
 
No tässä olisi tällainen vuokaavio tästä ohjaussysteemistä. Jos tarvii tarkentaa jotain kohtaa, kertokaa niin päivitän kaavion.

Laturi State Machine.jpg
Running - waiting välille tulee varmaa tila stopping ?

Missä kaikissa tiloissa tarkastetaan jännite >15V ? Ilmeisesti aina tilasta riippumatta?
 
@ississ, STOPPING-tilaa ei ole lainkaan, ehkä se olisi hyvä lisätä? Ajateltu, että se menisi sammuttuaan heti WAITING-tilaan.

Kaikista tiloista mennään FAIL-tilaan, jos jännite on 15 V tai yli.
 
Tuossa mietin ainakin että kun startti ajaa konetta pyörittääkö se yli 300rpm eikö tuo raja kannattas nostaa jonnekin 1000rpm paikkeille vai paljonko tuollainen kone kiertää tyhjäkäynnillä.
Itse tekisin ehkä suoraan looppiin tuon yli15v jännitteen tutkimisen joka palauttaa heti tilan fail
 
@Nasty76 , kaikki kierroslukuarvot ja todennäköisesti myös alarajajännite ovat tässä vaiheessa vielä valistuneita arvauksia ja niitä ehtii sitten hienosäätää, kun koko systeemi on toimivana. Esim. tuo 300 kierrosta minuutissa lienee sitä luokkaa, että siinä voidaan ajatella, että moottori on käynnistynyt. Tuskin starttimoottori noin lujaa pyörittää moottoria ja helppohan sitä on tarpeen mukaan muuttaa ylemmäs.

Moottorin ilmoitettu tyhjäkäynti on 1 400 kierrosta minuutissa, starttimoottori kuitenkin tulisi irroittaa jo paljon ennen tätä, eli kun moottori alkaa niin sanotusti putputtamaan. Tyhjäkäyntiähän ei käytännössä tulla käyttämään koskaan, sillä moottori käynnistyy suoraan siihen kierrosnopeuteen, mihin se on asetettu. Veikkaanpa jotain puolikaasua, ehkä luokkaa 2 000 - 3 000 kierrosta minuutissa. Sitä suuremmalla syyllä startin olisi hyvä irrota moottorista jo ajoissa.
 
Stopping- tila ei ole välttämätön mutta arduinon kannalta moottorin sammuminen on kuitenkin hidas tapahtuma, loop() ajaa monta kertaa sen aikana kun kone sammuu (sekunteja kuitenkin koko tapahtuma).
Ja waiting- tilassa ei tietenkään saa olla koodia joka hämääntyy siitä että moottorilla on vielä kierroksia enemmän kuin 0.

Riippuu myös miten sammutus ja käynnistys tapahtuu, oikeastaanhan pitäisi ensin hallitusti lopettaa lataus (= pwm pienelle), kääntää sammutuslähtö ja sitten odottaa että kierrokset/tärinä ilmaisee että on seis.
2 ensimmäistä menee tilanvaihdossa running -> waiting mutta missä odotetaan että on oikeasti sammunut ?
Yksi tapa olla lisätä stopping- tila odotusta varten ja vasta kun todetaan että on oikeasti sammunut niin sammutuslähdön nollaus ja tilanvaihto -> waiting.
Toinen vaihtoehto on tietysti sammutuslähdön palautus ajo-asentoon vasta silloin kun käynnistetään. Tyyliin sammutuslähdön nollaus, odotetaan esim 200ms koska rele on hidas ja sitten starttilähtö päälle jne. Ja tässä välissä delay(200) on ihan ok eikä kannata tehdä ajastimella.
 

Statistiikka

Viestiketjuista
265 955
Viestejä
4 600 420
Jäsenet
75 742
Uusin jäsen
Innokentii

Hinta.fi

Back
Ylös Bottom