Sisukord:
- Samm: osad ja komponendid
- 2. samm: planeerige oma edusamme
- Samm: potentsiomeetrite kasutamine
- Samm 4: (3x) potentsiomeetri juhtmestiku skeem
- Samm: AnalogRead () ja muutujate kasutamine
- 6. samm: jadamonitori kasutamine 1 nupuga
- Samm: RGB LED -i kasutamine
- Samm: potentsiomeetrite kasutamine RGB LED -i juhtimiseks (ühe veaga)
- 9. samm: BONUS: Kaardi () funktsioon ja puhastuskood
Video: Värvisegisti Arduinoga: 9 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
Jälgi autori lisateavet:
Teave: Alati õpib ….. Veel tliguori330 kohta »
Värvisegisti on suurepärane projekt kõigile, kes töötavad ja kasvavad koos Arduinoga. Selle juhendi lõpuks saate 3 nuppu keerates segada ja sobitada peaaegu kõiki värve. Oskuste tase on piisavalt madal, et isegi täielik algaja suudab selle edukalt lõpetada, kuid samas ka piisavalt huvitav, et olla kogenud loomaarstile nauditav. Selle projekti maksumus on peaaegu midagi ja enamik Arduino komplekte on varustatud vajalike materjalidega. Selle koodi keskmes on mõned põhilised arduino funktsioonid, millest igaüks, kes kasutab arduinot, tahab aru saada. Me läheme sügavamale funktsioonide analogRead () ja analogWrite () kohta nagu teine tavaline funktsioon nimega map (). Need lingid viivad teid nende funktsioonide arduino viitelehtedele.
Samm: osad ja komponendid
Arduino Uno
Potentsiomeeter (x3)
RGB LED
220 oomi takisti (x3)
Jumper juhtmed (x12)
Leivalaud
2. samm: planeerige oma edusamme
See võib olla väga kasulik, kui plaanite oma projekti lõpule viia. Kodeerimine seisneb loogilises edenemises ühest sammust teise. Tegin vooskeemi, mis kirjeldab, kuidas ma soovin, et minu visand jookseks. Üldine eesmärk on 3 nuppu (potentsiomeetrit), mis juhivad RGB LED -i kolme värvi. Selle saavutamiseks peame koostama vooskeemile vastava visandi. Me tahame….
1) Lugege 3 erinevat potentsiomeetrit ja salvestage nende väärtused muutujateks.
2) Teisendame need väärtused vastavusse RGB LED -i vahemikuga.
3) Seejärel kirjutame need teisendatud väärtused igale RGB värvile.
Samm: potentsiomeetrite kasutamine
Elektroonikakomplektide üks põhilisemaid komponente, potentsiomeetrit saab kasutada paljudes erinevates projektides. potentsiomeetrid töötavad, võimaldades kasutajal füüsiliselt muuta vooluahela takistust. Potentsiomeetri kõige farmilaarsem näide on valguse dimmer. nupu libistamine või keeramine muudab ahela pikkust. pikem tee toob kaasa suurema vastupanu. Suurenenud takistus vähendab vastupidiselt voolu ja valgust. Neid võib olla erineva kuju ja suurusega, kuid enamikul on sama põhiseade. Üks õpilane palus abi oma kitarri parandamisel ja saime teada, et selle nupud on täpselt samad kui potentsiomeetrid. Üldiselt olid välisjalad ühendatud 5 volti ja maapinnaga ning keskmine jalg läheb analoogpinnile nagu A0
Samm 4: (3x) potentsiomeetri juhtmestiku skeem
Kõige vasak jalg ühendatakse 5v ja parem parem jalg GND -ga. Saate need kaks sammu tegelikult ümber pöörata ja see ei kahjusta projekti väga. Ainus, mis muudaks, on nupu lõpuni vasakule keeramine, mitte täieliku heleduse asemel. Keskmine jalg ühendatakse ühe Arduino analoogpistikuga. Kuna meil on kolm nuppu, tahame äsja tehtud tööd kolmekordistada. Iga nupp vajab 5v ja GND, nii et neid saab leivalaua abil jagada. Leivaplaadil olev punane riba on ühendatud 5 voltiga ja sinine riba on ühendatud maapinnaga. Iga nupp vajab oma analoognõela, nii et need on ühendatud A0, A1, A2.
Samm: AnalogRead () ja muutujate kasutamine
Kui potentsiomeeter on õigesti seadistatud, oleme valmis neid väärtusi lugema. Kui me seda teha tahame, kasutame funktsiooni analogRead (). Õige süntaks on analogRead (pin#); nii et meie keskmise potentsiomeetri lugemiseks oleksime analogRead (A1); Nupust Arduinole saadetavate numbritega töötamiseks tahame need numbrid ka muutujaga salvestada. Koodirida täidab seda ülesannet, kui loeme potentsiomeetrit ja salvestame selle praeguse numbri täisarvulises muutuja "val"
int val = analogRead (A0);
6. samm: jadamonitori kasutamine 1 nupuga
Praegu saame nuppudest väärtusi hankida ja neid muutujaga salvestada, kuid oleks kasulik, kui näeksime neid väärtusi. Selleks peame kasutama sisseehitatud jadamonitori. Allolev kood on esimene visand, mida me tegelikult Arduino IDE -s käitame ja mille saab nende saidilt alla laadida. Tühjuse seadistuses () aktiveerime sisendina iga keskmise jalaga ühendatud analoogpoldid ja aktiveerime jadakuva Serial.begin (9600) abil; järgmiseks loeme ainult ühte nuppudest ja salvestame selle muutujale nagu varem. Muudatus on see, et oleme lisanud rea, mis prindib muutujale salvestatud arvu. Kui koostate ja käivitate visandi, saate seejärel avada oma jadamonitori ja näha numbrite kerimist ekraanil. Iga kord, kui kood loeb, loeme ja prindime teise numbri. Kui keerate A0-ga ühendatud nuppu, peaksite nägema väärtusi vahemikus 0-1023. hiljem on eesmärk lugeda kõiki kolme potentsiomeetrit, mille salvestamiseks ja printimiseks oleks vaja veel 2 analooglugemist ja 2 erinevat muutujat.
tühine seadistus () {
pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); Seriaalne algus (9600); } void loop () {int val = analogRead (A0); Seeria.println (val); }
Samm: RGB LED -i kasutamine
4 jalaga RGB LED on üks minu lemmikkomponente Arduino jaoks. Leian, et viis, kuidas see suudab luua kolme põhivärvi segudest lõputuid värve, on põnev. Seade on sarnane mis tahes tavalisele LED -ile, kuid siin on meil põhimõtteliselt ühendatud punane, sinine ja roheline LED. Lühikesi jalgu juhib üks arduino PWM -tihvtidest. Pikim jalg ühendatakse 5 volti või maandusega, sõltuvalt sellest, kas teil on ühine anood või tavaline katood -LED. Selle probleemi lahendamiseks peate proovima mõlemat viisi. Meil on juba 5v ja GND leivaplaadiga ühendatud, seda peaks olema lihtne muuta. Ülaltoodud diagramm näitab ka kolme takisti kasutamist. Ma jätan selle sammu sageli vahele, kuna mul pole seda olnud ja LED -tuled põlevad mu peal.
Värvide loomiseks kasutame funktsiooni analogWrite (), et kontrollida, kui palju punast, sinist või rohelist lisada. Selle funktsiooni kasutamiseks peate ütlema, millise tihvtiga# me räägime ja numbri vahemikus 0–255. 0 on täielikult välja lülitatud ja 255 on ühe värvi suurim kogus. Ühendame punase jala nööpnõelaga 9, rohelise tihvtiga 10 ja sinise tihvtiga 11. See võib võtta mõne katse ja vea, et välja selgitada, milline jalg on mis värvi. Kui ma tahaksin lillat tooni teha, saaksin teha palju punast, mitte rohelist ja võib -olla poole tugevamat sinist. Soovitan teil nende numbritega nokitseda, see on tõesti põnev. Mõned tavalised näited on ülaltoodud piltidel
tühine seadistus () {
pinMode (9, VÄLJUND); pinMode (10, VÄLJUND); pinMode (11, VÄLJUND); } void loop () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}
Samm: potentsiomeetrite kasutamine RGB LED -i juhtimiseks (ühe veaga)
On aeg alustada meie kahe koodi ühendamist. Teil peaks tavalisel leivaplaadil olema piisavalt ruumi, et mahutada kõik 3 nuppu ja RGB LED. Idee on punase sinise ja rohelise väärtuste sisestamise asemel värvide pidevaks muutmiseks kasutada igast poteniomeetrist salvestatud väärtusi. sel juhul vajame 3 muutujat. punane, roheline, sinine on kõik erinevad muutujad. Pidage meeles, et saate neid muutujaid nimetada mida iganes soovite. kui keerate rohelist nuppu ja punane kogus muutub, saate nimesid õigesti sobitada. nüüd saate iga nuppu keerata ja värve juhtida !!
tühine seadistus () {
pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); pinMode (9, VÄLJUND); pinMode (10, VÄLJUND); pinMode (11, VÄLJUND); } void setup () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, rohelineVal); analogWrite (11, blueVal); }
9. samm: BONUS: Kaardi () funktsioon ja puhastuskood
Võite märgata, et kui hakkate ühe värvi nuppu üles keerama, siis see kasvab ja langeb äkki alla. See kasvamismuster ja seejärel kiire väljalülitamine kordub 4 korda, kui keerate nupu lõpuni üles. Kui mäletate, ütlesime, et potentsiomeetrid suudavad lugeda väärtusi vahemikus 0–1023. Funktsioon analogWrite () aktsepteerib ainult väärtusi vahemikus 0–255. Kui potentsiomeeter ületab 255, algab see põhimõtteliselt nullist. viga nimega kaart (). saate ühe numbrivahemiku ühe sammuga teisendada teisesse numbrivahemikku. teisendame numbrid 0-1023 numbriteks 0-255. Näiteks kui nupp oli poolenisti seatud, peaks see lugema umbes 512. see number muudetakse 126 -le, mis on LED -i poole tugevam. Selles viimases visandis nimetasin mugavuse huvides tihvte muutuvate nimedega. Nüüd on teil valmis värvimikser, millega katsetada !!!
// potentsiomeetri tihvtide muutujate nimed
int redPot = A0; int greenPot = A1; int bluePot = A2 // RGB tihvtide muutujate nimed int redLED = 9; int rohelineLED = 10; int sinineLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (punaneLED, VÄLJUND); pinMode (rohelineLED, VÄLJUND); pinMode (sinineLED, VÄLJUND); Seriaal, alusta (9600); } void loop () {// potentsiomeetrite väärtuste lugemine ja salvestamine int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // teisendada väärtused 0-1023 väärtuseks 0-255 RGB LED-i jaoks redVal = map (redVal, 0, 1023, 0, 255); greenVal = kaart (greenVal, 0, 1023, 0, 255); blueVal = kaart (blueVal, 0, 1023, 0, 255); // kirjutage need teisendatud väärtused igale RGB LED -i värvile analogWrite (redLED, redVal); anaogWrite (rohelineLED, rohelineVal); analogWrite (blueLED, blueVal); // näita väärtusi jadamonitoril Serial.print ("red:"); Serial.print (redVal); Serial.print ("roheline:"); Serial.print (greenVal); Serial.print ("sinine:"); Serial.println (blueVal); }
Soovitan:
Ouija koos Arduinoga: 6 sammu (piltidega)
Ouija - Arduino Töö tegemiseks nagu tõeline Ouija, peame kasti sisse panema ühe servomootori
Sagedusloendur Arduinoga: 8 sammu (piltidega)
Sagedusloendur Arduinoga: see on lihtne ja odav arduino -põhine sagedusloendur, mis maksis vähem kui 4 dollarit, väikeste ahelate mõõtmine oli väga kasulik
Tehke tantsurobot ilma 3D -printeri ja Arduinoga/#nutiloome: 11 sammu (piltidega)
Tee tantsurobot ilma 3D -printerita ja Arduino/#smartcreativity: Tere sõbrad, selles õpetuses näitan teile, kuidas teha tantsurobotit kodus ilma 3D -printerita ja ilma Arduino -ta. See robot on võimeline tantsima, automaatset tasakaalustamist, muusika tootmist ja kõndimist. Ja ka roboti disain näeb välja nii lahe
DIY hingamisandur Arduinoga (juhtiv silmkoeline venitusandur): 7 sammu (piltidega)
DIY hingamisandur Arduinoga (juhtiv silmkoeline venitusandur): see DIY andur on juhtiva silmkoelise venitusanduri kujul. See ümbritseb teie rinda/kõhtu ja kui teie rind/kõht laieneb ja tõmbub kokku, siis ka andur ja järelikult Arduinole edastatavad sisendandmed. Niisiis
DIY Ambilight koos Raspberry Pi ja Arduinoga! Töötab mis tahes HDMI -allikaga: 17 sammu (piltidega)
DIY Ambilight koos Raspberry Pi ja Arduinoga! Töötab mis tahes HDMI -allikaga: mul on elektroonikast üsna elementaarne arusaam, mistõttu olen ülimalt uhke oma DIY Ambilighti seadistuse üle puidust põhikorpuses, millel on võimalus tulesid sisse ja välja lülitada nii, nagu mulle meeldib. Neile, kes ei tea, mis on Ambilight;