Kirjoittaja Aihe: Arduino ongelma  (Luettu 1237 kertaa)

Poissa AKH

  • Viestejä: 414
Arduino ongelma
« : 19-01-2018, 09:14:26 »
Semmoimen askarruttaa mieltä, että mitenkä saisi painokytkimellä vaihdettua ohjelmaa yhteiselle esim. näytölle.

Ajatus olis, että useampi ohjelma "peräkkäin" arduinossa johon kytketty vaikka yksi 7seg led näyttö/servolla tehty analoginen näyttö.

Niin mitenkäkähän mahdollisesti ohjelmaan lisätään painokytkimellä valinta.

Löytyisköhän jonkinlaista esimerkkiä? En oikein ole keksinyt hakusanoja.

Yhtenä ajatuksena lambda, 2x lämpötila ja näytyönä servolla tehty viisari näyttö, kytkimellä saisi valittua ohjelman mitä analoogisesti näytetään.

Nopeusmittarin rakentelin johon käytin valmista kirjastoa johon vaan omat setupit. Tuossa hall anturi mittaamassa nopeutta/matkaa. Servo kääntelee viisaria ja 7seg näyttö matkamittarina.

Poissa Matti ZZJ

  • Viestejä: 2 719
Vs: Arduino ongelma
« Vastaus #1 : 19-01-2018, 09:35:23 »
Lisäät vaikka muuttujan "ohjelma" jonka arvoa kasvatetaan aina napin painalluksella ja jos sen arvo menee isommaksi kuin ohjelmien lukumäärä niin palautat sen arvoksi ykkösen.

Sitten pääohjelmassa loop{}  ohjastat if-lausekkeilla toiminnan sopivaan aliohjelmaan:
IF (ohjelma=1) {lambada-aliohjelma;}
https://www.arduino.cc/en/Reference/FunctionDeclaration

Tai koodareiden mielestä ruma mutta toimiva ratkaisu pistää vaan ohjelmat if-lausekkeen sisään
IF (ohjelma=1) {koodi 1 tässä }
IF (ohjelma=2) {koodi 2 tässä}
jne

Poissa TTA

  • Viestejä: 1 188
Vs: Arduino ongelma
« Vastaus #2 : 19-01-2018, 10:06:04 »
Mites aliohjelmasta palataan jos siellä suoritetaan luuppia ikuisesti? Varmaan pitäisi tehdä funktio, jossa tarkastetaan onko nappia painettu ja kutsua tätä funktiota kaikkien kolmen "ohjelman" sisällä ja jos on painettu, lähdetään pois, jolloin palataan siihen pää luuppiin, josta siirrytään sitten seuraavaan "ohjelmaan".

Poissa Teemu

  • Viestejä: 2 645
Vs: Arduino ongelma
« Vastaus #3 : 19-01-2018, 10:55:56 »
Ottaisin toisenlaisen lähestymistavan. Ei "vaihdeta ohjelmaa" vaan näytössä näkyvää dataa eli näytön sisältöä painikkeen askelluksen mukaan.

Tee tuollainen painikkeella askeltava laskuri niin kuin Matti kertoi. SItten tekisin ohjelman jotenkin näin:

1. alustusrutiinit, kerran suoritettavat jutut kun laite käynnistyy
2. luetaan inputit, anturi-arvot, jne. muuttujiin.
3. luetaan painikkeet
4. onko jotain painettu? Jos on, askella sitä näyttölaskuria eteenpäin, jos tuli suurempi kuin max.määrä, aseta se takaisin 1.
5. (tehdään jotakin)
6. (tehdään jotakin)
7. päivitetään/kirjoitetaan LED-näyttö:
 - jos näytön askelluslaskuri = 1, kirjoita näytölle esim. lämpötila 1 ja lämpötila 2
 - jos näytön askelluslaskuri = 2, kirjoita näytölle esim. nopeus
-  jos näytön askelluslaskuri = 3, kirjoita näytölle esim. lambda-arvo
 ....... näitä niin paljon kuin tarvitaan.......
8. aseta servoviisarinäyttöön lukema
9. asetetaan muut digilähdöt
10. palaa kohtaan 2.

Poissa AKH

  • Viestejä: 414
Vs: Arduino ongelma
« Vastaus #4 : 19-01-2018, 13:10:04 »
Nyt on niin paljon uuttaa asiaa, että hetki menee miettiessä ja testatessa. Kiitokset avustneille.

Tosiaankin oma ohjelmointi tietotaito on lähinnä valmiiden kirjastojen kopiointia.


Poissa Matti ZZJ

  • Viestejä: 2 719
Vs: Arduino ongelma
« Vastaus #5 : 19-01-2018, 13:23:36 »
Mites aliohjelmasta palataan jos siellä suoritetaan luuppia ikuisesti? Varmaan pitäisi tehdä funktio, jossa tarkastetaan onko nappia painettu ja kutsua tätä funktiota kaikkien kolmen "ohjelman" sisällä ja jos on painettu, lähdetään pois, jolloin palataan siihen pää luuppiin, josta siirrytään sitten seuraavaan "ohjelmaan".
Taisin tehdä niin että kukanenkin aliohjelma pyörähtää kerran läpi ja palaa sitten aina "pääluuppiin" pomppimaan if-lausekkeita läpi että mikä aliohjelma nyt taas pyöritään läpi.

Seittemän miljoonaa tapaa tehdä tuo homma ja niistä 6.999 miljoonaa on oikeiden koodareiden mielestä "ihan kauheita". Kuten koko Arduino.  >:D

Poissa Antti Logrén

  • Viestejä: 2 290
Vs: Arduino ongelma
« Vastaus #6 : 19-01-2018, 13:27:59 »
Tähän on useita vaihtoehtoja. Ns. Tilakone voisi olla yksi toteutusmalli.
Kuten yllä ehdotettiin tee kytkimellä ainoastaan näyttöjen valinta ja pyöritä taustalla loput toiminnot keskeytyksettä.
”Oikeat” koodarit niille kyllä tulee pitkä  väittely toteutustavasta ja parempi vaan tehdä just niin kuin sen sattuu osaamaan.
Aikaisempi nimimerkki kkuula
Asun Vantaalla

Poissa JTa

  • Viestejä: 176

Poissa Teemu

  • Viestejä: 2 645
Vs: Arduino ongelma
« Vastaus #8 : 20-01-2018, 11:12:07 »
....on oikeiden koodareiden mielestä "ihan kauheita". Kuten koko Arduino.  >:D

Arduino toi mikrokontrollerit lisukkeineen ja ohjelmoinnin ihan kaikkien saataville edullisesti ja vielä opastaa alkuunkin. Kyllähän siinä "oikean koodarin" tilakone vähemmästäkin sekoaa kun statusta ja jalustaa tullaan nakertamaan  >:D

Poissa TTA

  • Viestejä: 1 188
Vs: Arduino ongelma
« Vastaus #9 : 20-01-2018, 18:58:48 »
^En ymmärtänyt sanomaa? Koodata voi halvemmallakin jos haluaa. Arduino toi lähinnä "automaation" kaikkien saataville eli ohjelmoimalla saa sytytettyä ihan fyysisiä lamppuja, virtuaalisten sijaan.