Arduino -ketju (kysymykset/keskustelu)

Kiitoksia vastauksesta :)

Luulin että olisi kestänyt hetkellisesti tuon 800mA, ei nuo puhaltimet käy oikeastaan koskaan ihan täydellä nopeudella, säädettu SimHub ohjelmasta.
Näemmä piirejä ei kannata vaihtaa kun samalla hinnalla saa koko kortin.

Aika hintsusti noita L298 Arduino klooneja vielä EU:ssa ja Kiinasta ei jaksa enää tilailla pakollisen tullauksen takia.
Josko tuo Arduinon 10x kalliimpi hinta sitten ajaa asiansa.

edit:
Arduino Motor Shield rev3 tuli ja sain SimHub:ssa toimimaan vaikkei valmista profiilia ollutkaan
1624993696654.png
Pinnit 3 ja 11 siis käyttöön ja piti tuulettimien + ja - karvat laittaa eripäin mitä kortilla luki.
 
Viimeksi muokattu:
Kiitoksia vastauksesta :)

Luulin että olisi kestänyt hetkellisesti tuon 800mA, ei nuo puhaltimet käy oikeastaan koskaan ihan täydellä nopeudella, säädettu SimHub ohjelmasta.
Näemmä piirejä ei kannata vaihtaa kun samalla hinnalla saa koko kortin.

Aika hintsusti noita L298 Arduino klooneja vielä EU:ssa ja Kiinasta ei jaksa enää tilailla pakollisen tullauksen takia.
Josko tuo Arduinon 10x kalliimpi hinta sitten ajaa asiansa.

Kesto riippuu siitä miten säätö toteutetaan.
Yksinkertaistettuna, jos vaikka ohjaus on pwm 50% niin karkeasti puolet ajasta menee max virta ja puolet nolla. Keskiarvo siinä välissä.
Alimitoitettu ohjain ei yleensä kestä.

Sikahintaisten korttien sijaan tuohon riittäisi fet ja 2 vastusta arduinon perään ajamaan vaikka molempia puhaltimia rinnan.
Mutta silloin joutuu todennäköisesti rakentamaan itse.
 
edit:
Arduino Motor Shield rev3 tuli ja sain SimHub:ssa toimimaan vaikkei valmista profiilia ollutkaan
1624993696654.png
Pinnit 3 ja 11 siis käyttöön ja piti tuulettimien + ja - karvat laittaa eripäin mitä kortilla luki.

Miten PWM taajuutta säädetään?
Ohjelmoinnista en ymmärrä mitään, mutta tuohon
TCCR2B = TCCR2B & 0b11111000 | mode;
kohtaan yritin kaikenlaista eikä onnistunut.
1625175998380.png


FOR ARDUINO UNO:

Code for Available PWM frequency for D3 & D11:

TCCR2B = TCCR2B & B11111000 | B00000001; // for PWM frequency of 31372.55 Hz
TCCR2B = TCCR2B & B11111000 | B00000010; // for PWM frequency of 3921.16 Hz
TCCR2B = TCCR2B & B11111000 | B00000011; // for PWM frequency of 980.39 Hz
TCCR2B = TCCR2B & B11111000 | B00000100; // for PWM frequency of 490.20 Hz (The DEFAULT)
TCCR2B = TCCR2B & B11111000 | B00000101; // for PWM frequency of 245.10 Hz
TCCR2B = TCCR2B & B11111000 | B00000110; // for PWM frequency of 122.55 Hz
TCCR2B = TCCR2B & B11111000 | B00000111; // for PWM frequency of 30.64 Hz

Pins 11 and 3:


SettingDivisorFrequency
0x01131250
0x0283906.25
0x0332976.5625
0x0464488.28125
0x05128244.140625
0x06256122.0703125
0x07102430.517578125

TCCR2B = TCCR2B & 0b11111000 | <setting>;


Ongelma on että Arduino Motor Shield rev3:lle ei ole suoraa tukea SimHub softassa ja puhaltimet pitävät ikävää korkeataajuista ääntä.
Muissa valmiissa sketch:ssä saa joko säädettyä taajuutta tai vaihtoehtoisen, mutta tuohon sitä ei ole laitettu.

TCCR2B = TCCR2B & 0b11111000 | 0x05;
riviä kokeilin koska suositus oli 200-300Hz, mutta ei vaikutusta.
Pitääkö tuolta jostain ottaa sulkeita pois tms?

Osaisiko joku auttaa kiitos :)
 
Viimeksi muokattu:
Tarkoittaako "ei vaikutusta" että pwm- taajuus ei muuttunut vai ääni ei muuttunut ?
Jos saat mitattua taajuuden niin se kannattaa tehdä ensin.

Puhaltimista ja kytkennästä riippuen voi joutua säätämään taajuutta paljonkin. Esimerkkinä oma viritys akvaarion parille puhaltimelle vaati ~11kHz ennen kuin toimivat äänettömästi myös minimikierroksilla.

Täältä voi aina tarkastaa mitä rekistereihin pitäisi kirjoittaa. Tässä tapauksessa pitää selvittää myös mikä mode timerilla on käytössä tuon kirjaston alustuksen jälkeen.
 
Tarkoittaako "ei vaikutusta" että pwm- taajuus ei muuttunut vai ääni ei muuttunut ?
Jos saat mitattua taajuuden niin se kannattaa tehdä ensin.

Puhaltimista ja kytkennästä riippuen voi joutua säätämään taajuutta paljonkin. Esimerkkinä oma viritys akvaarion parille puhaltimelle vaati ~11kHz ennen kuin toimivat äänettömästi myös minimikierroksilla.

Täältä voi aina tarkastaa mitä rekistereihin pitäisi kirjoittaa. Tässä tapauksessa pitää selvittää myös mikä mode timerilla on käytössä tuon kirjaston alustuksen jälkeen.
Kokeilin noita kaikkia edellä mainittuja taajuuksia enkä huomannut mitään eroa, en äänessä eikä muutenkaan.
Ei ole oskilloskooppia eikä oikein mitään muutakaan.
Taitaa olla mission impossible totaali newbie dummie:lle kun en ole koskaan noista ohjelmoinneista ymmärtänyt hölkäsen pöläystä vaikka niitä on sekä ammattikoulussa että työelämässäkin koitettu opettaa...ei vaan taida olla vastaanottoa tälle asialle mun korvien välissä.

Timerin mode ei kerro mitään ja linkki ei toimi.

Adafruit Motor Shield V2:lle löytyisi SimHub softasta tuki ja siinä saa säädettyä grafiikasta taajuutta eli pitänee vielä sellanenkin sit hommata...kalliiksi tulee tän mun alunpitäen edulliseksi meinaama tuulisimulointi.

DK Shield:llä rasti ruutuun vaihtoehtoinen taajuus oli miltei äänetön näille samoille tuulettimille, mutta virta-arvot ei siis siinä riittäneet.
Niitä olisi vielä kaksi iskemätöntä jäljellä.

Pistin kyllä SimHub:n request foorumille pyyntöä josko PWM taajuudelle saisi säädön tuossa "SHAKEIT PWM Outputs" kohdasta tai tuen Arduino Motor Shieldrev3:lle.
 
Kokeilin noita kaikkia edellä mainittuja taajuuksia enkä huomannut mitään eroa, en äänessä eikä muutenkaan.
Ei ole oskilloskooppia eikä oikein mitään muutakaan.
Taitaa olla mission impossible totaali newbie dummie:lle kun en ole koskaan noista ohjelmoinneista ymmärtänyt hölkäsen pöläystä vaikka niitä on sekä ammattikoulussa että työelämässäkin koitettu opettaa...ei vaan taida olla vastaanottoa tälle asialle mun korvien välissä.

Timerin mode ei kerro mitään ja linkki ei toimi.

Adafruit Motor Shield V2:lle löytyisi SimHub softasta tuki ja siinä saa säädettyä grafiikasta taajuutta eli pitänee vielä sellanenkin sit hommata...kalliiksi tulee tän mun alunpitäen edulliseksi meinaama tuulisimulointi.

DK Shield:llä rasti ruutuun vaihtoehtoinen taajuus oli miltei äänetön näille samoille tuulettimille, mutta virta-arvot ei siis siinä riittäneet.
Niitä olisi vielä kaksi iskemätöntä jäljellä.

Pistin kyllä SimHub:n request foorumille pyyntöä josko PWM taajuudelle saisi säädön tuossa "SHAKEIT PWM Outputs" kohdasta tai tuen Arduino Motor Shieldrev3:lle.

Katos, taisi jäädä linkistä osa kopioimatta. Pahoittelut siitä.
Sama löytyisi haulla "atmega 328p datasheet". Täytyy korjata kun oon taas koneella.
Manuskasta löytyy kaikki, timeria voi käyttää eri modeissa ja sen mukaan rekisteriarvot vaikuttavat hiukan eri tavalla.

Näissä tulee kyllä ongelmia jos jokin ei heti toimi eikä pysty mittaamaan lähtöjä.
Pitää ostaa mittari ja opetella. Toinen vaihtoehto on käyttää niitä jotka joku on jo tehnyt ja yleensä maksaa enemmän.
 
Juu no ei se datasheet mun kohdalla valitettavasti auta asiaa, Googletin kyllä.

Puhaltimet pitävät nyt niin ikävää ääntä 100%:a lukuun ottamatta että häiritsee pelaamista.

Pistän joko DK shieldillä toimimaan niin että rajaan yläpäästä virrankäyttöä pois (max rpm pienempi) tai tilaan tuon Adafruit:n kortin jota suurin osa tuulisimun käyttäjistä suosii.
Olis pitänyt ensin tutkia tarkemmin mitä ohjainta suositellaan.

Kiitos kuitenkin Sinulle kun koitit auttaa :smile:
 
Juu no ei se datasheet mun kohdalla valitettavasti auta asiaa, Googletin kyllä.

Puhaltimet pitävät nyt niin ikävää ääntä 100%:a lukuun ottamatta että häiritsee pelaamista.

Pistän joko DK shieldillä toimimaan niin että rajaan yläpäästä virrankäyttöä pois (max rpm pienempi) tai tilaan tuon Adafruit:n kortin jota suurin osa tuulisimun käyttäjistä suosii.
Olis pitänyt ensin tutkia tarkemmin mitä ohjainta suositellaan.

Kiitos kuitenkin Sinulle kun koitit auttaa :smile:

DK - kortilla on 2 ajuripiiriä (yhteensä 4 lähtöä) ja tarvitset 2 puhallinta ?

Tuon voisi hiukan virittää kytkemällä lähdöt pareittain rinnan jolloin saa 2 lähtöä 4 sijaan melkein tuplavirralla.
Esimerkki L293D datalehdestä:
1625220776594.png


Puhallin on todennäköisesti kytketty kuten M2 kuvassa. Piirin lähdöt ovat nastat 3, 6, 11 ja 14, ne menevät todennäköisesti suoraan reunan ruuviliittimille M1, M2 (ja toisesta M3, M4) pareittain 3,6 on toinen ja 11,14 on toinen (kuten tuossa kuvassa).
Pareilla on sama enable- signaali joten pareja ei saa sekoittaa.

Kytkemällä tulosignaalit yhteen (kuvassa olisi nastat 10 ja 14) ja jättämällä toisen käyttämättä (= mielellään fyysisesti irti) niin vastaavt lähdöt voi periaatteessa kytkeä rinnan.
Koska kyseessä on puhallin ja se pyörii aina samaan suuntaan laittaisin varmuuden vuoksi nastoihin 11 ja 14 diodit, anodi kortille ja katodit yhteen josta johto puhaltimen +. Puhaltimen - GND. Diodeiksi käy tässä melkein mikä tahansa kunhan virran kesto on tarpeeksi.

Tulosignaalin erotuksen voi tehdä esimerkiksi irrottamalla piirin kannasta ja vääntämällä jalan kannan ulkopuolelle. Ja sen jälkeen juottamalla hyppylanka irrotetun ja toisen jalan välille.

Toinen vaihtoehto on katkaista käyttämättömän inputin piikki reunan liittimestä jolla kortti kytketään arduinoon. Ja taas hyppylanka niiden pinnien välille jotka kuuluu yhdistää.
 
DK - kortilla on 2 ajuripiiriä (yhteensä 4 lähtöä) ja tarvitset 2 puhallinta ?

Tuon voisi hiukan virittää kytkemällä lähdöt pareittain rinnan jolloin saa 2 lähtöä 4 sijaan melkein tuplavirralla.
Esimerkki L293D datalehdestä:
1625220776594.png

...Kytkemällä tulosignaalit yhteen (kuvassa olisi nastat 10 ja 14)...
Juu kaksi puhallinta on eli tuota kikkaasi pitää ehdottomasti kokeilla heti kun tavailen tuota ohjetta ja unenpuutteessa ymmärrän sen.
Voin uhrata vaikka molemmat DK kortit, 3eur/kpl.

------------------------
1625231777062.png


1625231798800.png


Mitkä kaikki tuossa kytketään yhteen?
2 ja 15
7 ja 10
3 ja 14
6 ja 11
jalat 15 ja 10 käännetään
ja sama toisessa IC-piirissä
?

edit:
No nyt on inputit ja outputit rinnan ilman diodeja ja IC-kannan kääntelyjä.
SimHub:sta piti laskea teho 50%:iin, joka vastasi ennen 100%
Puhaltimet toimii hienosti täysin ilman vinkumista.
Katsotaan nyt kuinka kauan kukkuu, Adafruitin tilasin kuitenkin niin saadan projekti hintoihin... :shy:
 
Viimeksi muokattu:
Juu kaksi puhallinta on eli tuota kikkaasi pitää ehdottomasti kokeilla heti kun tavailen tuota ohjetta ja unenpuutteessa ymmärrän sen.
Voin uhrata vaikka molemmat DK kortit, 3eur/kpl.

------------------------
1625231777062.png


Mitkä kaikki tuossa kytketään yhteen?

Kuva kertoo aina parhaiten, tämä olisi oma ratkaisu:
1625239932769.png


Ja vastaavasti toiselle puolelle 10-15 yhteen ja 11,14 ulos. Se katkaiseeko tulon M1A vai M1B riippuu siitä kummalla linjalla haluaa/pitää ohjata.

Diodit lähdössä suojaavat piirin transistoreja, niitä kun ei yleensä suositella kytkettäväksi suoraan rinnan. Monesti käytetään myös pieniä vastuksia (tyyliin 0.2...1.0ohm) ja kelpaa tässäkin diodien sijaan. Kummankin pitäisi toimia ihan yhtä hyvin. Ja tietysti voi kytkeä kortin lähtöihin ruuviliittimeen, oli vaan helpompi piirtää tuohon kohtaan...

Tällä saa itse asiassa 4 puhallinta koska 1 L293D voisi ohjata 2moottoria suunnan vaihdolla tai 4 yhteen suuntaan. Rinnan siis 2 yhteen suuntaan joten riittää vain toisen piirin modaus.
 
No voi perkule, olen näköjään jo aivan jäässä :eek:
Mitähän tuo mun kytkentä sitten teki :redface:
Kokeilen nyt tällä ja ens kerralla tuon Sun kytkennän mukaan jos kortti taas lakkaa toimimasta...tai laitan sen Adafruitin kun tulee viikon päästä.

edit:
Hyvin tuntuis ainakin nyt pelittävän kun ohjaan 2 kanavaa / 1 puhallin.
 
Viimeksi muokattu:
No voi perkule, olen näköjään jo aivan jäässä :eek:
Mitähän tuo mun kytkentä sitten teki :redface:
Kokeilen nyt tällä ja ens kerralla tuon Sun kytkennän mukaan jos kortti taas lakkaa toimimasta...tai laitan sen Adafruitin kun tulee viikon päästä.

edit:
Hyvin tuntuis ainakin nyt pelittävän kun ohjaan 2 kanavaa / 1 puhallin.

Jos kytkit yhteen
2 ja 15
7 ja 10
3 ja 14
6 ja 11

niin kytkit vierekkäiset ohjaimet rinnan. Tuokin toimii, mutta vain silloin kun myös PWM2A ja PWM2B ovat myös yhdessä (eli 1 ja 9).

Vaikka se vaikuttaisi toimivan oikein niin tuiolla saattaa turhaan kuormittaa ajuria ja kannattaa kytkeä kerralla oikein vaikka ne halpoja olisivatkin.
Tässä käy varmaan samalla tavalla kuin aluksi eli toimii jonkin aikaa ja sitten ei.
 
Elikkä huomasin netin syövereistä mielenkiintoisen kapistuksen.
Auton can väylään liitetään Arduino uno+can bus shield lisäkortti, tuohon ajetaan sisään Tämä.
Kapistus muuttuu usb pohjaiseksi ohjaimeksi, jonka avulla pitäisi pystyä auton omilla ratti nappuloilla ohjaamaan esim android tablettia.
Sen verran tietämätön tästä arduinosta että voisiko joku jeesata tai valaista tyhmää että miten tuo syötetään arduinoon ja saadaan toiminta valmiiksi.
Löytyy Arduino uno ja tuo canbus shield jo.
Kiitos jo näin etukäteen viisaammille!!
 
Jos kytkit yhteen
2 ja 15
7 ja 10
3 ja 14
6 ja 11

niin kytkit vierekkäiset ohjaimet rinnan. Tuokin toimii, mutta vain silloin kun myös PWM2A ja PWM2B ovat myös yhdessä (eli 1 ja 9)...
Mulla on SimHub ohjelmasta 2 kanavaa aktivoitu / yksi puhallin, niin eikös se tässä aja saman asian kuin että jumppaa 1 ja 9 ?

1625382457739.png

Tuolla Sun kytkennällä puhaltimen toinen karva siis kytketään riviliittimen GND ruuvin alle?
 
Viimeksi muokattu:
Mulla on SimHub ohjelmasta 2 kanavaa aktivoitu / yksi puhallin, niin eikös se tässä aja saman asian kuin että jumppaa 1 ja 9 ?

1625382457739.png

Tuolla Sun kytkennällä puhaltimen toinen karva siis kytketään riviliittimen GND ruuvin alle?

Periaatteessa 2 ohjaus on sama mutta fyysisesti kytkemällä ei varmasti tule tilannetta jossa toinen ohjataan ja toinen ei.
Sama koskee sitä mitkä lähdöt kytketään rinnan, pitää olla ne jotka ovat saman ebablen takana jolloin ajoitus pakotetaan raudalla.
 
Ei nyt suoranaisesti Arduino kysymys, mutta liippaa tarpeeksi läheltä...

Mistä saa halvimmalla Raspberry pi 4? Onko jotain tiettyä kauppapaikkaa, jota foorumin DIY-väki suosii?
 
Ei nyt suoranaisesti Arduino kysymys, mutta liippaa tarpeeksi läheltä...

Mistä saa halvimmalla Raspberry pi 4? Onko jotain tiettyä kauppapaikkaa, jota foorumin DIY-väki suosii?
Onhan nämä aika eri asioita, mutta vastataan silti.
BerryBase
Tuolta olen tilaillut Brexitin jälkeen. En tiedä onko itse Raspberryn osalta halvin, mutta tuolta saa samalla kaikkea muuta rakenteluun liittyvää. No ainakin koteloa Piille ja samalla sitten Arduino-tavaraa, työkaluja yms.
 
Amatöörillä olisi pari kysymystä arduinoon liittyen, kun pitäisi alkaa tämän kanssa harrastamaan.

Minkä verran tuossa perus Arduino Unossa on ns jerkkua? Kuinka isoja kokonaisuuksia sillä voi hallita, ennenkuin piirin rajat tulevat vastaan.

Olisi tarkoitus rakentaa projekti, johon tulisi ~6 analogista sisääntuloa, näillä ohjataan nopeudensäätimiä, servoja jne. Mahdollisesti pari anturia tulisi kylkeen, tiedä mitä muuta sitä keksii vielä.

Onko tuollainen yllä mainittu vielä tehtävissä Unolla, vai olisiko Mega, tai jokin muu parempi vaihtoehto? Äkkiseltään kun tutustuin piireihin, niin Unon pinnien pitäisi riittää.
Mutta jaksaako Uno esim. käsitellä näitä kaikkia kuutta analogista sisääntuloa samaan aikaan?
 
Kaipa tuokin riippuu siitä millä taajuudella niitä pitää lukea...
 
Amatöörillä olisi pari kysymystä arduinoon liittyen, kun pitäisi alkaa tämän kanssa harrastamaan.

Minkä verran tuossa perus Arduino Unossa on ns jerkkua? Kuinka isoja kokonaisuuksia sillä voi hallita, ennenkuin piirin rajat tulevat vastaan.

Olisi tarkoitus rakentaa projekti, johon tulisi ~6 analogista sisääntuloa, näillä ohjataan nopeudensäätimiä, servoja jne. Mahdollisesti pari anturia tulisi kylkeen, tiedä mitä muuta sitä keksii vielä.

Onko tuollainen yllä mainittu vielä tehtävissä Unolla, vai olisiko Mega, tai jokin muu parempi vaihtoehto? Äkkiseltään kun tutustuin piireihin, niin Unon pinnien pitäisi riittää.
Mutta jaksaako Uno esim. käsitellä näitä kaikkia kuutta analogista sisääntuloa samaan aikaan?

Petiaatteessa uno/mega on sama laskentateho, se riippuu kellotaajuudesta.

Ja kuten yllä mainittiin kaikki riippuu kuinka usein asioita pitää tehdä.
Anlogimuuntimia on vain yksi eli 6 tulon tapauksessa pitää mitata yksi, vaihtaa tulo, mitata se, jne.

Osa arduinokirjaston jutuista on hitaita, mm digitalin ja digitalout hupmattavasti hitaampia kuin suoraan lukien/asettaen.

Nopeus tai "riittääkö tehot" on myös pitkälti kiinni siitä millä tavalla asiat voi toteuttaa.
Riittääkö ajastimet jolloin ei tarvitse tehdä kaikkea itse loopissa, keskeytykset jne.
 
Hyvä kysymys taajuudesta! Äkkiä kun etsin, niin tyypillinen taajuus lienee ~400Hz, mutta ainakin 500Hz näytti olevan myös mahdollinen.


Paljon on opittavaa asiasta. Mutta onhan tässä aikaa opetella, kun varsinaisesti kiire ei ole.

Signaali tulee radiovastaanottimesta, PCM tai PPM, riippuen vähän mitä tulee ostettua.

Idea on siis käytännössä tehdä radio-ohjattava laite, käyttäen perinteistä lähetintä+vastaanotinta ohjaamiseen.

Lopputuloksen ollessa suhteellisen monimutkainen ja raskas (perinteiset radio-ohjattavissa käytettävät nopeudensäätimet ei riitä), joutuisi ainakin osan kanavien ohjaamisen tekemään arduinon läpi, esimerkiksi säätimiä ohjaus. Tai näin sen päässäni olen ajatellut.

Tässä projektissa siis pitäisi reaaliaikasesti pystyä käyttämään ainakin lähes kaikkia kanavia samaan aikaan. Minimissään kolmea.

Minullahan voi (kuten siltä nyt vähän näyttäisi) olla aivan väärä käsitys koko arduinosta, eikä se välttämättä ole käyttökelpoinen alusta tässä.

Arduinoa olen yhden kerran käyttänyt, bootloaderin ajamiseen ja firmwaren päivittämiseen, joten kokemus on sanotaanko vähintäänkin minimaalista.


Edit. Pari youtube-videota katseltu ja itseä sivistetty. Kyllä tuon pitäisi onnistua, kun muutkin on onnistuneet. Ei vain menekkään ihan niinkuin itse ensalkuun asian ajattelin.
 
Viimeksi muokattu:
Hyvä kysymys taajuudesta! Äkkiä kun etsin, niin tyypillinen taajuus lienee ~400Hz, mutta ainakin 500Hz näytti olevan myös mahdollinen.

Hyvinhän siinä riittää potkua, kun hieman paneutuu asiaan ja tekee kriittiset hommat keskeytyspohjaisesti. Onhan siinä rajut 16MHz, joka nykypäivänä tuntuu aika vähältä, mutta siinäkin on 16 miljoonaa kellojaksoa sekunnissa ja keskeytysten avulla moni homma toimii itsestään.

Esimerkiksi omassa diesel-moottorinohjauksessa tein niin että mulla pyörii taustalla keskeytyspohjainen ADC juurikin n. 500Hz taajuudella joka lukee kaikki ADC kanavat bufferiin (ja tarvittaessa filtteroi vähän), tällöin on aina tuore arvo heti saatavissa ilman odottelua. Tämän lisäksi pystyy pyörittämään float-pohjaisia pid-säätölooppeja vaikka kuinka (no näissä taisi mulla olla taajuus 60Hz ja yhdessä 500Hz), ja muut kriittiset toimenpiteet tehdään esim keskeytyksen avulla (esim. kierroslukusignaali, tai fiksattu timer). Ylimääräisen CPU ajan käytin sitten ansi-grafiikoilla höystetyyn gui tui:hin.

Toki omat hankaluudet juuri keskeytysten kanssa touhutessa on laitteeen 8-bittisyydestä johtuen, joten yli 8bittisten arvojen muuttaminen/lukeminen vaatii omat synkronoinnit..
 
Hyvä kysymys taajuudesta! Äkkiä kun etsin, niin tyypillinen taajuus lienee ~400Hz, mutta ainakin 500Hz näytti olevan myös mahdollinen.


Paljon on opittavaa asiasta. Mutta onhan tässä aikaa opetella, kun varsinaisesti kiire ei ole.

Signaali tulee radiovastaanottimesta, PCM tai PPM, riippuen vähän mitä tulee ostettua.

Idea on siis käytännössä tehdä radio-ohjattava laite, käyttäen perinteistä lähetintä+vastaanotinta ohjaamiseen.

Lopputuloksen ollessa suhteellisen monimutkainen ja raskas (perinteiset radio-ohjattavissa käytettävät nopeudensäätimet ei riitä), joutuisi ainakin osan kanavien ohjaamisen tekemään arduinon läpi, esimerkiksi säätimiä ohjaus. Tai näin sen päässäni olen ajatellut.

Tässä projektissa siis pitäisi reaaliaikasesti pystyä käyttämään ainakin lähes kaikkia kanavia samaan aikaan. Minimissään kolmea.

Minullahan voi (kuten siltä nyt vähän näyttäisi) olla aivan väärä käsitys koko arduinosta, eikä se välttämättä ole käyttökelpoinen alusta tässä.

Arduinoa olen yhden kerran käyttänyt, bootloaderin ajamiseen ja firmwaren päivittämiseen, joten kokemus on sanotaanko vähintäänkin minimaalista.


Edit. Pari youtube-videota katseltu ja itseä sivistetty. Kyllä tuon pitäisi onnistua, kun muutkin on onnistuneet. Ei vain menekkään ihan niinkuin itse ensalkuun asian ajattelin.

Normaali vastaanottimesta servoille lähtee 50Hz signaali jossa pulssin pituus on yleensä 1-2ms laidasta toiseen.
Tuskin kannattaa lähte itse purkaman siellä välissä kulkevaa ppm/pcm signaalia.

Nykyään on monenlaisia säätimiä ja moottoreita. Tietämättä mitä ajattelit ohjata niin löytyyhän noita helposti muutamaan kW asti.
Jos ei riitä niin sitten voi siirtyä astetta raskaampiin ja tehdä väliin muunnin vastarin pulssista siiihen mitä pitää ohjata.

Nopeudensäätimiä tai oikeastaan moottoriohjaimia ei ehkä kannata lähteä tekemään itse, siihen tarvitaan aika paljon muutakin kuin arduino ja vähän koodausta. Valmiina löytyy vaikka mitä toimivaa, kyse on oikeastaan vain budjetista.

Yleisesti suosittelen että et yritä laittaa kaikkia toiminnallisuuksia samaan palikkaan vaan ehkä mieluummin palastelee pienempiin osiin jolloin tekeminen helpottuu ja yleensä virheetkin vähenee.
 
Normaali vastaanottimesta servoille lähtee 50Hz signaali jossa pulssin pituus on yleensä 1-2ms laidasta toiseen.
Tuskin kannattaa lähte itse purkaman siellä välissä kulkevaa ppm/pcm signaalia.

Nykyään on monenlaisia säätimiä ja moottoreita. Tietämättä mitä ajattelit ohjata niin löytyyhän noita helposti muutamaan kW asti.
Jos ei riitä niin sitten voi siirtyä astetta raskaampiin ja tehdä väliin muunnin vastarin pulssista siiihen mitä pitää ohjata.

Nopeudensäätimiä tai oikeastaan moottoriohjaimia ei ehkä kannata lähteä tekemään itse, siihen tarvitaan aika paljon muutakin kuin arduino ja vähän koodausta. Valmiina löytyy vaikka mitä toimivaa, kyse on oikeastaan vain budjetista.

Yleisesti suosittelen että et yritä laittaa kaikkia toiminnallisuuksia samaan palikkaan vaan ehkä mieluummin palastelee pienempiin osiin jolloin tekeminen helpottuu ja yleensä virheetkin vähenee.
Kiitos tarkennuksesta!

Tarkoitus on toki pitää homma yksinkertaisena, eikä turhia asioita vetää arduinon kautta. On vain epäilys, että en saa ohjaimesta kanavia miksattua sillä tavalla kuin olisi tarvis. Parin kW alapuolella todennäköisesti pysytään säätimien ja moottorien suhteen.
Projektiin tulee myös magneettiventtiileitä, askelmoottoreita, valoja jne, jotka sen arduinon kautta menee ainakin.

Nopeudensäätimet/moottoriohjaimet tietty ostan valmiina, niiden ohjaus sitten tarvittaessa arduinon kautta.

Pitänee siis pari arduinoa hommata ja kasa tarviketta, että alkuun pääsee.
 
Moi!

Mulla olisi yksi projekti johon, tarvisin Arduino osaamista. Olen itse aivan käsi tälläisissa asioissa, joten kysynkin olisiko jollain kiinnostusta toteuttaa harrastetyö. Projektiin löytyy ohjeet, joita tosin en itse ymmärrä. Projekti olisi varmasti hyvää harjoitusta ja maksan toki tarvikkeiden lisäksi työstä. Jos kiinnostuit niin laita viestiä niin kerron projektista lisää. :)
 
#include <Arduino.h>
#include <SPI.h>
#include <U8x8lib.h>

/* Constructor */
U8X8_SH1107_SEEED_128X128_SW_I2C u8x8(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
/* u8x8.begin() is required and will sent the setup/init sequence to the display */
int a=A0; //variable of value of analog read pin
int b=A1;
int c=A2;
int x=A3;




char taco[4];
char paco[4];
char maco[4];
char loco [4];



void setup(void) {
u8x8.begin();// Oled display begins
}


void loop(void) {


a=analogRead(A0); //read potentiometer value
sprintf(taco,"%04d",a); //convert potentiometer value to string u8x8.clearLine(); // clear the internal memory
u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font
u8x8.drawString(0,40,taco); // write something to the internal memory

delay(100);
c=analogRead(A2); //read potentiometer value
sprintf(maco,"%04d",c); //convert potentiometer value to string u8x8.clearLine(); // clear the internal memory
u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font
u8x8.drawString(0,36,maco); // write something to the internal memory

delay(100);



b=analogRead(A1); //read potentiometer value
sprintf(paco,"%04d",b); //convert potentiometer value to string u8x8.clearLine(); // clear the internal memory
u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font
u8x8.drawString(0,38,paco); // write something to the internal memory

delay(100);

sprintf(loco,"%04d",x); u8x8.clearLine();
u8x8.setFont(u8x8_font_chroma48medium8_r);
u8x8.drawString(0,36,loco);

delay(100);


Leikin arduino uno kitillä ja seeed 128x128 oled näytöllä.

Ei mene kaaliin millä saisin analogisesta (A3) lämpötilan ruudulle näkyviin.

Koitin ujuttaa koodiin float pätkää, mutta johtaa vain virheisiin.

u8x8 manuaalista ei oikein heru apuja.
 
Viimeksi muokattu:
Leikin arduino uno kitillä ja seeed 128x128 oled näytöllä.

Ei mene kaaliin millä saisin analogisesta (A3) lämpötilan ruudulle näkyviin.

Koitin ujuttaa koodiin float pätkää, mutta johtaa vain virheisiin.

u8x8 manuaalista ei oikein heru apuja.

Homman nimi taitaa olla niin että tuo näyttö printtaa vain sen, minkä olet luonut merkkijonoksi sprintf:n avulla. Eli älä keskity näytön kirjaston toimintoihin, vaan sprintf:n muotoiluun eli kaiketi jos teet näin (muotoillaan kahden desimaalin tarkkuudella):

char buffer[16];
float temperatureValue=42.69;
sprintf(buffer, "%.2f °C", temperatureValue);
u8x8.drawString(0,38,temperatureValue);

Ja jos haluaa debugata vielä paikallisesti ilman näyttö, voi kokeilla Serial.print(buffer);
 
Homman nimi taitaa olla niin että tuo näyttö printtaa vain sen, minkä olet luonut merkkijonoksi sprintf:n avulla. Eli älä keskity näytön kirjaston toimintoihin, vaan sprintf:n muotoiluun eli kaiketi jos teet näin (muotoillaan kahden desimaalin tarkkuudella):

char buffer[16];
float temperatureValue=42.69;
sprintf(buffer, "%.2f °C", temperatureValue);
u8x8.drawString(0,38,temperatureValue);

Ja jos haluaa debugata vielä paikallisesti ilman näyttö, voi kokeilla Serial.print(buffer);


En saanut tuolla toimimaan, lättäsin googgelilla löytyneen koodin pätkän. Meinaa järki lähteä. Toki taitaa olla ylimääräistä pätkää tuolla. Mutta katson kohta läpi uudestaan. Nyt saan jännitteen ruudulle. Seuraavaksi koitan saada sen celsius asteiksi.
#include <Arduino.h>
#include <SPI.h>
#include <U8x8lib.h>

/* Constructor */
U8X8_SH1107_SEEED_128X128_SW_I2C u8x8(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
/* u8x8.begin() is required and will sent the setup/init sequence to the display */
int a=A0; //variable of value of analog read pin
int b=A1;
int c=A2;
int sensorValue=A3;
int counter = sensorValue;
char taco[4];
char paco[4];
char maco[4];
float voltage;

void setup(void) {
u8x8.begin();// Oled display begins
}


void loop(void) {
a=analogRead(A0); //read potentiometer value
sprintf(taco,"%04d",a); //convert potentiometer value to string u8x8.clearLine(); // clear the internal memory
u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font
u8x8.drawString(0,40,taco); // write something to the internal memory

delay(100);
c=analogRead(A2); //read potentiometer value
sprintf(maco,"%04d",c); //convert potentiometer value to string u8x8.clearLine(); // clear the internal memory
u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font
u8x8.drawString(0,36,maco); // write something to the internal memory

delay(100);




b=analogRead(A1); //read potentiometer value
sprintf(paco,"%04d",b); //convert potentiometer value to string u8x8.clearLine(); // clear the internal memory
u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font
u8x8.drawString(0,38,paco); // write something to the internal memory

delay(100);
int sensorValue = analogRead(A3);
float voltage = sensorValue * (5.0 / 1023.0);

u8x8.drawString(0, 0, String(voltage).c_str());


delay(100);
}


#include <Arduino.h>
#include <SPI.h>
#include <U8x8lib.h>

/* Constructor */
U8X8_SH1107_SEEED_128X128_SW_I2C u8x8(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
/* u8x8.begin() is required and will sent the setup/init sequence to the display */
int a=A0; //variable of value of analog read pin
int b=A1;
int c=A2;
int sensorValue=A3;

char taco[4];
char paco[4];
char maco[4];
float voltage;

void setup(void) {
u8x8.begin();// Oled display begins
}


void loop(void) {
a=analogRead(A0); //read potentiometer value
sprintf(taco,"%04d",a); //convert potentiometer value to string u8x8.clearLine(); // clear the internal memory
u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font
u8x8.drawString(0,40,taco); // write something to the internal memory

delay(100);
c=analogRead(A2); //read potentiometer value
sprintf(maco,"%04d",c); //convert potentiometer value to string u8x8.clearLine(); // clear the internal memory
u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font
u8x8.drawString(0,36,maco); // write something to the internal memory

delay(100);




b=analogRead(A1); //read potentiometer value
sprintf(paco,"%04d",b); //convert potentiometer value to string u8x8.clearLine(); // clear the internal memory
u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font
u8x8.drawString(0,38,paco); // write something to the internal memory

delay(100);
int sensorValue = analogRead(A3);
float voltage = sensorValue * (5.0 / 1023.0);
float temperatureC = (voltage - 0.5) * 100 ;
u8x8.drawString(0, 0, String(temperatureC).c_str());


delay(100);
}

Kas näin. Meni sellainen 8h hakatessa päätä seinään.

Ja tässä vielä speksit:
Arduino Uno
Seeed SH1107G oled
128x128
3x potentiometri
1x TMP36

Unossa ei riitä muisti pyörittään koodia g8u2:llä joten tyydyin u8x8 puolelle joka tuuttaa pelkkää tekstiä ruudulle.


Voi olla vielä muovattavaa koodissa, mutta tärkeintä, että sain erilaisia arvoja ruudulle ja kaikki arvot muuttuu näytöllä. Tästä on hyvä jatkaa etiäpäin RPM sensorin pariin.
 
Viimeksi muokattu:
Postataan tänne vielä uusiksi parsittu versio jossa potentiometriä kääntämällä antaa jännitteen potikan jalasta. Toki mittaan tämän huomenna, täsmääkö jännite arduinon antamaan.

3x potikkaa
1x tmp36 lämp.anturi

Jos jollakulla joskus tulee tarvetta.


#include <Arduino.h>
#include <SPI.h>
#include <U8x8lib.h>

/* Constructor */
U8X8_SH1107_SEEED_128X128_SW_I2C u8x8(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
/* u8x8.begin() is required and will sent the setup/init sequence to the display */
int a=A0; //variable of value of analog read pin
int b=A1;
int c=A2;
int sensorValue=A3;


float voltage;
float voltagea;
float voltageb;
float voltagec;

void setup(void) {
u8x8.begin();// Oled display begins
}


void loop(void) {

u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font

int a = analogRead(A0);
float voltagea = a * (5.0 / 1023.0);
u8x8.drawString(0, 40, String(voltagea).c_str());

delay(100);
int c = analogRead(A2);
float voltagec = c * (5.0 / 1023.0);
u8x8.drawString(0, 36, String(voltagec).c_str());

delay(100);



int b = analogRead(A1);
float voltageb = b * (5.0 / 1023.0);
u8x8.drawString(0, 38, String(voltageb).c_str());


delay(100);
int sensorValue = analogRead(A3);
float voltage = sensorValue * (5.0 / 1023.0);
float temperatureC = (voltage - 0.5) * 100 ;
u8x8.drawString(0, 0, String(temperatureC).c_str());


delay(100);
}
 
Postataan tänne vielä uusiksi parsittu versio jossa potentiometriä kääntämällä antaa jännitteen potikan jalasta. Toki mittaan tämän huomenna, täsmääkö jännite arduinon antamaan.

3x potikkaa
1x tmp36 lämp.anturi

Jos jollakulla joskus tulee tarvetta.


#include <Arduino.h>
#include <SPI.h>
#include <U8x8lib.h>

/* Constructor */
U8X8_SH1107_SEEED_128X128_SW_I2C u8x8(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
/* u8x8.begin() is required and will sent the setup/init sequence to the display */
int a=A0; //variable of value of analog read pin
int b=A1;
int c=A2;
int sensorValue=A3;


float voltage;
float voltagea;
float voltageb;
float voltagec;

void setup(void) {
u8x8.begin();// Oled display begins
}


void loop(void) {

u8x8.setFont(u8x8_font_chroma48medium8_r); // choose a suitable font

int a = analogRead(A0);
float voltagea = a * (5.0 / 1023.0);
u8x8.drawString(0, 40, String(voltagea).c_str());

delay(100);
int c = analogRead(A2);
float voltagec = c * (5.0 / 1023.0);
u8x8.drawString(0, 36, String(voltagec).c_str());

delay(100);



int b = analogRead(A1);
float voltageb = b * (5.0 / 1023.0);
u8x8.drawString(0, 38, String(voltageb).c_str());


delay(100);
int sensorValue = analogRead(A3);
float voltage = sensorValue * (5.0 / 1023.0);
float temperatureC = (voltage - 0.5) * 100 ;
u8x8.drawString(0, 0, String(temperatureC).c_str());


delay(100);
}

Kokeile vaihtaa string().c_str() tilalle vakiobuffer ja sprintf, pitäisi muistinkäytön vähentyä.
String on iso ja jos sen ominaisuuksia ei oikeasti tarvitse niin kannattaa jättää käyttämättä.
@dmn viestissä vähän ylempänä on hyvä esimerkki.
En ole varma arduino idestä mutta joissakin sprintf float- käsittely pitää erikseen kääntää päälle mutta se kannattaa silti mieluummin kuin käyttää string- luokkaa
 
Kokeile vaihtaa string().c_str() tilalle vakiobuffer ja sprintf, pitäisi muistinkäytön vähentyä.
String on iso ja jos sen ominaisuuksia ei oikeasti tarvitse niin kannattaa jättää käyttämättä.
@dmn viestissä vähän ylempänä on hyvä esimerkki.
En ole varma arduino idestä mutta joissakin sprintf float- käsittely pitää erikseen kääntää päälle mutta se kannattaa silti mieluummin kuin käyttää string- luokkaa

En saanut toimimaan, tai en osaa. Tuo oma koodin kikkare vie 30% unon muistista. Kokeilen uudestaan huomenna ko esimerkillä uudestaan. Kun järki pelaa taas.
 
En saanut toimimaan, tai en osaa. Tuo oma koodin kikkare vie 30% unon muistista. Kokeilen uudestaan huomenna ko esimerkillä uudestaan. Kun järki pelaa taas.

No kappas, ei sitä näköjään vieläkään osaa kirjoittaa paria riviä koodia ilman bugeja..
Esimerkissäni piti olla
u8x8.drawString(0,38,temperatureValue) -> u8x8.drawString(0,38,buffer);

Eli tulostetaan "buffer", jossa muotoiltuna floatti merkkijonoksi kahdella desimaalilla (eikä suinkaan anneta sille parametriksi floattia, mitä se ei osa tulostaa).

Muistista varmaan suurimman osan näytön fontti, yllättävän pieneen kyllä arduinossa c++ jututkin menee.
 
No kappas, ei sitä näköjään vieläkään osaa kirjoittaa paria riviä koodia ilman bugeja..
Esimerkissäni piti olla
u8x8.drawString(0,38,temperatureValue) -> u8x8.drawString(0,38,buffer);

Eli tulostetaan "buffer", jossa muotoiltuna floatti merkkijonoksi kahdella desimaalilla (eikä suinkaan anneta sille parametriksi floattia, mitä se ei osa tulostaa).

Muistista varmaan suurimman osan näytön fontti, yllättävän pieneen kyllä arduinossa c++ jututkin menee.
Kiitos! Kokeilen huomenna! Täytyy sanoa, että viime vuosien koodin kikkareet on itsellä ollu lähinnä ardu pohjaisten kopujen parissa. Ehdasta c kielestä ja sen hakkaamisesta on jo 15 vuotta aikaa. Toki sen jälkeen muutamia rivejä naputellut. En kyllä enää muista yhtikäs mitään. Sama javan kanssa.
 
Laitetaanpa nyt tämäkin räpellys.

Piti tehdä (nopeasti) yksi esp8266 lämpömittari mökille testiin. Ensimmäisen kasasin suoraan esp-07 taakse mutta ilmeisesti jotakin meni vikaan tai esp oli viallinen, boottasi joka kerran kun piti yhdistää verkkoon.

Seuraavaan versioon tein oikein levyn, yksipuolisen ja yksinkertaisen että onnistuisi kerralla.
1645123402325.png


Ja kun on päiviä jolloin ei pitäisi tehdä mitään niin regulle jäi väärä kotelo ja nyt se on väärinpäin. 1w- mittauskaan ei toiminut, siksi punainen lanka toiseen porttiin (koska luulin että tuli virhe). Lopuksi syylliseksi paljastui visual stupido joka jostain syystä lykkäsi väärän version softasta jäi vielä käyttämään väärää sarjaporttia (huomasin kun kokeilin toisella usb-adapterilla).
1645123586668.png

No, lopunperin toimii mutta olipahan taas säätöä.

Jaa että miksi mini usb ? Vain siksi että laatikossa oli liittimiä ja iso nippu valmiita johtoja.
 
Voisiko joku tyrkätä vauhtiin...

NodeMCU Lolin V3 kortin yritän saada ohjaamaan WS2812b led-nauhaa. (Nauha on loppupätkä pidemmästä (20 lediä), mutta tällä kai ei pitäisi olla merkitystä.)

Sen verran olen Arduinolla saanut aikaan, että kortilla olevan ledin olen saanut vilkkumaan ja kytkeytymään WLaniin, mutten esim. samanaikaisesti. Led-nauhaa en ole saanut koskaan henkiin.

Olisiko joku pomminvarma ohjelman pätkä&ohje, jolla täysi turisti pääsisi alkuun?
 
Voisiko joku tyrkätä vauhtiin...

NodeMCU Lolin V3 kortin yritän saada ohjaamaan WS2812b led-nauhaa. (Nauha on loppupätkä pidemmästä (20 lediä), mutta tällä kai ei pitäisi olla merkitystä.)

Sen verran olen Arduinolla saanut aikaan, että kortilla olevan ledin olen saanut vilkkumaan ja kytkeytymään WLaniin, mutten esim. samanaikaisesti. Led-nauhaa en ole saanut koskaan henkiin.

Olisiko joku pomminvarma ohjelman pätkä&ohje, jolla täysi turisti pääsisi alkuun?
Arduno IDE sisälttää esimerkin (Arduino\libraries\Adafruit_NeoPixel).
Ja tästä tutorial.
 
Jos et halua ihan harrastuksen vuoksi, niin WLED ja se on siinä.


Kiitti, sain ohejeilla lähes toimimaan. Jostain syystä NodeMCU-PyFlasher ei suostu käynnistymään minulla, vaikka myönnän unknown publiser oikeudet/administrator.

Löysin kuitenkin ESP8266Flasher.exe jolla sain .bin sisään.

WS2812b datalinjan suunnalla näyttää olevan väliä, eli linja pitää aina laittaa alkupäähän.
 
WS2812b datalinjan suunnalla näyttää olevan väliä, eli linja pitää aina laittaa alkupäähän.
Joo, ja myös jokainen led pitää komentaa erikseen. Kun led on saanut komennon, sen jälkeen se vaan lähettää kaiken datan sellaisenaan eteenpäin seuraavalle, kunnes datassa tulee riittävän pitkä tauko se alkaa kuunnella seuraavaa komentoa.
 
Mahtaako olla kenelläkään tullut vastaan Arduinolla (nano) toteutettua saunan löylyautomaattia? Jonkinlainen lähtökohta auttaisi toteutuksessa suuresti. Aluksi tarkoitus olisi napista laittaa automaattilöylysekvenssi päälle ja toisesta napista vettä kiukaalle manuaalisti. Jatkossa ehkä muutama erilainen löylytiheyssekvenssi. Vesi astiassa, ei siis kytketä vesijohtoverkkoon. Pumpun ohjaus 5V releen kautta, ei erillistä venttiliä. Kaikki apu ohjelman suhteen tarpeen.
 
Mahtaako olla kenelläkään tullut vastaan Arduinolla (nano) toteutettua saunan löylyautomaattia? Jonkinlainen lähtökohta auttaisi toteutuksessa suuresti. Aluksi tarkoitus olisi napista laittaa automaattilöylysekvenssi päälle ja toisesta napista vettä kiukaalle manuaalisti. Jatkossa ehkä muutama erilainen löylytiheyssekvenssi. Vesi astiassa, ei siis kytketä vesijohtoverkkoon. Pumpun ohjaus 5V releen kautta, ei erillistä venttiliä. Kaikki apu ohjelman suhteen tarpeen.
Etsi joku automaattinen kasvien kastelu projekti ja kopioi siitä. Kummassakin on ajastin joka ohjaa pumppua.
Se ”manuaali” nappi voi ohjata vaikka suoraan sitä pumpun relettä.
 
Etsi joku automaattinen kasvien kastelu projekti ja kopioi siitä. Kummassakin on ajastin joka ohjaa pumppua.
Se ”manuaali” nappi voi ohjata vaikka suoraan sitä pumpun relettä.

Tuo sekvenssi on jotenkin hallussa, ja napista pumpun ohjaus erikseen. Mutta näiden yhdistäminen on oman osaamisen ulkopuolella. Ei ole vielä osunut silmään ohjelmaa, jota mukaillen osaisin tuon toteuttaa halutulla tavalla.
 
Tuo sekvenssi on jotenkin hallussa, ja napista pumpun ohjaus erikseen. Mutta näiden yhdistäminen on oman osaamisen ulkopuolella. Ei ole vielä osunut silmään ohjelmaa, jota mukaillen osaisin tuon toteuttaa halutulla tavalla.
Eikö sen voi ajatella laittavan sen sekvenssin yhden if lauseen taakse jonka ehtona on ”nappi päällä”.

Eli jos nappi/kytkin ei ole päällä, sekvenssiä ei suoriteta.
 
Sattuisikohan kellään olemaan tiedossa anturia millä pystyisi lukemaan veden pinnan korkeutta.

Tämän tyylinen olisi haussa, mutta pitäisi olla mitoiltaan 150mm x 15mm.


Yksi mahdollisuus toki piirtää itse sopivan kokoinen piirilevy ja teettää se. Taitaa vaan tarvita myös jotain vahvistus piiriä / älyä.

Perus arduino Nanon perään olisi tulossa kiinni.
 
Sattuisikohan kellään olemaan tiedossa anturia millä pystyisi lukemaan veden pinnan korkeutta.

Tämän tyylinen olisi haussa, mutta pitäisi olla mitoiltaan 150mm x 15mm.


Yksi mahdollisuus toki piirtää itse sopivan kokoinen piirilevy ja teettää se. Taitaa vaan tarvita myös jotain vahvistus piiriä / älyä.

Perus arduino Nanon perään olisi tulossa kiinni.
Ei oikein taida kannattaa piirtää ja teettää ellei noita isoja määrää tarvii, kun se normaali protopiirilevy luiskilla on käytännössä valmiina juuri tuollainen, sen kun vaan leikkaa mieleisensä levyiseksi.
 
Sattuisikohan kellään olemaan tiedossa anturia millä pystyisi lukemaan veden pinnan korkeutta.

Tämän tyylinen olisi haussa, mutta pitäisi olla mitoiltaan 150mm x 15mm.


Yksi mahdollisuus toki piirtää itse sopivan kokoinen piirilevy ja teettää se. Taitaa vaan tarvita myös jotain vahvistus piiriä / älyä.

Perus arduino Nanon perään olisi tulossa kiinni.
Itselläni on tuota vastaava itsetehty piirilevynpalanen mittaamassa yhden astian pinnankorkeutta ESP32:n kanssa. Ihan juovakuparoidusta protopiirilevystä leikkasin sopivan kokoisen palasen ja kytkin aina joka toisen juovan yhteen. Ainakin ESP32:n kanssa vastaanottoon riitti ihan vastusjakokytkentä ADC-pinniin. Sitten vaan softalla "kalibroin" tuon kahdelle eri vedenpinnan tasolle.

Toisessa vastaavassa rakennelmassa mulla on pari halpaa Aliexpressistä tilattua kapasitiivista anturia jotka antavat kärkitiedon kun pinta on anturin tasolla. Nämä ovat siis muovisen astian ulkopinnassa kiinni.
 
Tosiaan jos tuollaista protolevyä on olemassa niin sehän olisi helpointa, mutta ei ainakaan koskaan ole tullut vastaan eikä nytkään nopealla haulla spelektroniikasta tai radioduo:lta löytynyt tuollaista levyä, voi toki olla etten onnistunut tässä kännykällä selaillessa löytämään :S
 

Statistiikka

Viestiketjuista
259 222
Viestejä
4 505 320
Jäsenet
74 340
Uusin jäsen
spacevector

Hinta.fi

Back
Ylös Bottom