Cov txheej txheem:
Video: IR-Chaw Taws Teeb Kev Ntseeg Xim Xim: 3 Cov Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:27
Hauv cov lus qhia no, kuv yuav qhia koj yuav ua li cas tswj RGB coj siv IR-chaw taws teeb, thiab ua kev lom zem ua si tawm ntawm nws!
Kauj Ruam 1: Qhov Yuav Tsum Tau
Cov ntu koj yuav xav tau rau txoj haujlwm no yog:
- arduino ib- RGB Led- IR-Sensor
(suav suav yog nyob ntawm qhov kev ua si, tus nqi ntawm lub neej lossis)- 2 lub teeb ntsuab- 1 lub teeb daj- 1 lub txiv kab ntxwv coj- 3 lub teeb liab
Kauj ruam 2: Code
#suav nrog
int redPin = 10;
int greenPin = 6; int bluePin = 5;
int levensPin1 = 8;
int levensPin2 = 9; int levensPin3 = 12;
int levelPin1 = 2;
int levelPin2 = 3; int levelPin3 = 4; int levelPin4 = 7;
int RECV_PIN = 11;
IRrecv irrecv (RECV_PIN); decode_results cov txiaj ntsig;
// input xim
int tswv yim = {-1, -1, -1}; int xim = {-1, -1, -1};
int indexNumber = 0;
int indexColor = 0;
int tau = 0;
int rau = 0;
int cov = 0; int blauw = 0;
// tsim xim
int roodRandom = 0; int groenRandom = 0; int blauwRandom = 0;
// game variables
int cov = 200;
int levelNumber = 1;
int qib = {-1, -1, -1, -1};
int tau = 0;
qib 1 = 255;
qib 2 = 0; qib 3 = 0; qib 4 = 0;
int lub neej = 3;
int levens1 = 255; int levens2 = 255; int levens3 = 255;
int roodGok = 0;
int groenGok = 0; int blauwGok = 0;
void teeb tsa () {
Serial.begin (9600); irrecv.enableIRIn (); // pib tus txais tus pinMode (redPin, OUTPUT); tus pinMode (greenPin, OUTPUT); tus pinMode (bluePin, OUTPUT);
pinMode (levensPin1, OUTPUT);
pinMode (levensPin2, OUTPUT); tus pinMode (levensPin3, OUTPUT);
}
void voj () {
yog (irrecv.decode (& cov txiaj ntsig)) // tau txais cov cim los ntawm cov chaw taws teeb {Serial.println (results.value, DEC); // tso saib cov cim tau txais los ntawm txhua qhov nias khawm irrecv.resume (); // tau txais qhov hloov pauv tom ntej (txiaj ntsig.value) {// tig lub cim rau hauv tus lej ntawm cov nyees khawm, thiab muab cov haujlwm rau khawm
rooj plaub 109562864:
addWaarde (1); tawg;
rooj plaub 109562824:
addWaarde (2); tawg;
rooj plaub 109562856:
addWaarde (3); tawg;
rooj plaub 109562872:
addWaarde (4); tawg;
rooj plaub 109562820:
addWaarde (5); tawg;
rooj plaub 109562852:
addWaarde (6); tawg;
rooj plaub 109562868:
addWaarde (7); tawg;
rooj plaub 109562828:
addWaarde (8); tawg;
rooj plaub 109562860:
addWaarde (9); tawg;
rooj plaub 109562876:
addWaarde (0); tawg;
rooj plaub 109562818: // oud ding enter/R CLK
handleInput (); tawg;
rooj plaub 109562816: // oud ding power
handleColor (); tawg; rooj plaub 109562878: // oud ding cancel/L CLK resetColor (); tawg;
rooj plaub 109562866: // lege knop midden
randomColor (); tawg;
rooj plaub 109562830: // pijltje naar rechts
displayEverything (); tawg; rooj plaub 109562838: // esc rooj plaub 109562822: // AV qhov chaw rov pib dua txhua yam (); tawg; }
// muab cov nyees khawm ntawm cov chaw taws teeb rau kev tswj cov xim: txoj kev no, cov neeg ua si tuaj yeem pom cov xim zoo li cas thiab yuav ua li cas los sib txuas lawv, // ua ntej pib ua si. hloov (results.value) {rooj plaub 109562840: rood = 255; tawg;
rooj plaub 109562844:
cog = 255; tawg;
rooj plaub 109562850:
blauw = 255; tawg;
rooj plaub 109562836:
rooj = 0; noob = 0; blauw = 0; tawg; }
}
analogWrite (redPin, abs (255 - rood)); // tswj RGB coj: rov qab, vim tias kuv lub xov tooj tau rov qab.
analogWrite (greenPin, abs (255 - groen)); analogWrite (bluePin, abs (255 - blauw));
// tswj leds nyob
yog (lub neej == 2) {levens1 = 0; } yog (lub neej == 1) {levens2 = 0; } yog (lub neej == 0) {levens3 = 0; } analogWrite (levensPin1, levens1); analogWrite (levensPin2, levens2); analogWrite (levensPin3, levens3);
// tswj qib leds
yog (levelNumber == 1) {level1 = 255; } yog (levelNumber == 2) {level1 = 255; qib 2 = 255; } yog (levelNumber == 3) {level1 = 255; qib 2 = 255; qib 3 = 255; } yog (levelNumber == 4) {level1 = 255; qib 2 = 255; qib 3 = 255; qib 4 = 255; } analogWrite (levelPin1, qib 1); analogWrite (levelPin2, qib 2); analogWrite (levelPin3, qib 3); analogWrite (levelPin4, qib 4);
}
tsis muaj dab tsi addWaarde (int tus nqi) {// ntxiv nias tus nqi rau npe
yog (indexNumber == 3) {
rov qab; }
yog (input [indexNumber] == -1) {
input [indexNumber] = tus nqi; indexNumber ++; }}
void handleInput () {// ua 'waarde' (tus nqi) tawm ntawm cov npe
waarde = abs (input [0] * 100 + input [1] * 10 + input [2]); cov tswv yim [0] = -1; // pib dua de signalen input [1] = -1; cov tswv yim [2] = -1;
indexNumber = 0;
Serial.print ("tiv thaiv cov khoom lag luam:"); Serial.println (waarde); addColor (xim daj); }
tsis muaj dab tsi ntxivColor (int waarde) {// ntxiv 3-tus lej 'waarde' rau cov npe
yog (indexColor == 3) {
rov qab; }
yog (xim [indexColor] == -1) {
xim [indexColor] = waarde; yog (xim [indexColor]> 255) {xim [indexColor] = 255; } indexColor ++; }
}
tsis muaj dab tsi randomColor () {// ua rau lub teeb tig xim tsis zoo thiab txuag nws hauv qhov sib txawv
roodRandom = random (0, 255);
groenRandom = random (0, 255);
blauwRandom = random (0, 255);
rood = roodRandom;
groen = groenRandom; blauw = blauwRandom; Serial.print ("roodRandom ="); Serial.println (roodRandom); Serial.print ("groenRandom ="); Serial.println (groenRandom); Serial.print ("blauwRandom ="); Serial.println (blauwRandom);
}
tsis muaj dab tsi handleColor () {// tig 'waarde' los ntawm cov npe rau hauv 'Gok' (twv) sib txawv
roodGok = xim [0]; groenGok = xim [1]; blauwGok = xim [2]; // txheeb xyuas yog tias Gok qhov sib txawv txawv ntau dhau nrog cov xim tsis tseeb: yog li, tso saib qhov kev kwv yees rau peb vib nas this, ntsais ntsuab thiab hloov xim dua, ntxiv qib abd ua qhov sib txawv tso cai me dua // yog tias tsis yog, tso saib kwv yees peb vib nas this, ntsais liab thiab txiav tawm lub neej // yog tias koj tsis nyob hauv lub neej, qhov kev ua si pib dua yog (abs ((rood + groen + blauw) - - roodGok + groenGok + blauwGok)) <= diff) { analogWrite (redPin, abs (255 - roodGok)); analogWrite (greenPin, abs (255 - groenGok)); analogWrite (bluePin, abs (255 - blauwGok)); ncua (3000); analogWrite (redPin, 255); analogWrite (greenPin, 0); analogWrite (bluePin, 255); ncua (300); analogWrite (redPin, 255); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (300); analogWrite (redPin, 255); analogWrite (greenPin, 0); analogWrite (bluePin, 255); ncua (300); analogWrite (redPin, 255); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (300);
Serial.print ("roodGok =");
Serial.println (roodGok); Serial.print ("groenGok ="); Serial.println (groenGok); Serial.print ("blauwGok ="); Serial.println (blauwGok); resetColor (); randomColor (); levelNumber ++; sib -= 50; } lwm {analogWrite (redPin, abs (255 - roodGok)); analogWrite (greenPin, abs (255 - groenGok)); analogWrite (bluePin, abs (255 - blauwGok)); ncua (3000); analogWrite (redPin, 0); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (300); analogWrite (redPin, 255); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (300); analogWrite (redPin, 0); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (300); analogWrite (redPin, 255); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (300); Serial.print ("roodGok ="); Serial.println (roodGok); Serial.print ("groenGok ="); Serial.println (groenGok); Serial.print ("blauwGok ="); Serial.println (blauwGok);
resetColor ();
lub neej-; } yog (lub neej == 0) {analogWrite (redPin, 0); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (100); analogWrite (redPin, 255); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (100); analogWrite (redPin, 0); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (100); analogWrite (redPin, 255); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (100); analogWrite (redPin, 0); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (100); analogWrite (redPin, 255); analogWrite (greenPin, 255); analogWrite (bluePin, 255); ncua (100); rov kho txhua yam (); }
}
void resetColor () {// siv rau qhov pib qhov tseem ceeb, rau qhov yuam kev nias lossis txhua qhov kev kwv yees tshiab (tsuas yog kom paub tseeb)
xim [0] = -1; xim [1] = -1; xim [2] = -1;
indexNumber = 0;
indexColor = 0; }
void resetEverything () {// rov pib qhov game
xim [0] = -1; xim [1] = -1; xim [2] = -1;
indexNumber = 0;
indexColor = 0;
lub neej = 3;
rooj = 0; noob = 0; blauw = 0;
roodRandom = 0;
groenRandom = 0; blauwRandom = 0;
levens1 = 255;
levens2 = 255; levens3 = 255;
qib 1 = 255;
qib 2 = 0; qib 3 = 0; qib 4 = 0;
numNumber = 1;
t = 0;
}
void displayEverything () {// siv qhov no los tso tawm cov ntaub ntawv tseem ceeb ntawm tus saib xyuas
Serial.print ("roodGok ="); Serial.println (roodGok); Serial.print ("groenGok ="); Serial.println (groenGok); Serial.print ("blauwGok ="); Serial.println (blauwGok); Serial.print ("roodRandom ="); Serial.println (roodRandom); Serial.print ("groenRandom ="); Serial.println (groenRandom); Serial.print ("blauwRandom ="); Serial.println (blauwRandom);
Serial.print ("rood =");
Serial.println (rood); Serial.print ("groen ="); Serial.println (groen); Serial.print ("blauw ="); Serial.println (blauw);
Serial.print ("tiv thaiv cov khoom lag luam:");
Serial.println (waarde); }
Kauj ruam 3: Tsim
Koj pom tseeb xav tau kev tsim zoo rau txoj haujlwm no. ntu no zoo nkauj qhib rau kev txhais lus, tab sis muaj qee yam yuav tsum nco ntsoov nrog qhov no: - khaws lub vaj huam sib luag hauv ntej kom nyias, yog li koj tseem tuaj yeem lo koj cov leds los ntawm nws thiab IR -tus txais tseem ua haujlwm
- khaws qhov chaw txaus hauv kev tsim rau arduino thiab cov laug cam
- xyuas kom muaj lub qhov nyob tom qab rau lub zog ntawm arduino
Kuv tau ntxiv cov txheej txheem ntxhib rau cov thaiv.
Hmoov zoo, thiab muaj kev lom zem!
Pom zoo:
Kev Tau Txais, Kev Loj Hlob, thiab Kev Tshawb Fawb Circuit Court ntawm Kev Siv Hluav Taws Xob Hluav Taws Xob: 6 Kauj Ruam
Kev Tau Txais, Kev Txhim Kho, thiab Kev Tshawb Fawb Circuit Court ntawm Kev Siv Hluav Taws Xob Hluav Taws Xob: Txhawm rau ua kom tiav cov lus qhia no, tsuas yog yam xav tau yog lub khoos phis tawj, nkag tau internet, thiab qee qhov simulation software. Rau lub hom phiaj ntawm kev tsim qauv no, txhua qhov kev sib tw thiab kev sim yuav raug ua ntawm LTspice XVII. Qhov simulation software no muaj
Cov Ntawv Cim Hluav Taws Xob LED Taws Teeb Cov Neeg Hlau Cov Ntawv Cim - Cov Khoom Siv Soldering: 11 Kauj Ruam
Cov Khoom Siv Hluav Taws Xob LED Taws Teeb Cov Neeg Hlau Daim Npav - Cov Khoom Siv Soldering: Kab lus no tau txaus siab txhawb nqa los ntawm PCBWAY.PCBWAY ua cov qauv zoo PCBs rau tib neeg thoob plaws ntiaj teb. Sim nws rau koj tus kheej thiab tau txais 10 PCBs rau tsuas yog $ 5 ntawm PCBWAY nrog qhov ua tau zoo heev, Ua tsaug PCBWAY. Robadge#1 uas kuv tau tsim rau
Yuav Ua Li Cas Tswj DC Gear Motor los ntawm Kev Siv 160A Txhuam Cov Hluav Taws Xob Hluav Taws Xob Hluav Taws Xob thiab Servo Tester: 3 Cov Kauj Ruam
Yuav Ua Li Cas Tswj DC Gear Motor los ntawm Kev Siv 160A Txhuam Cov Hluav Taws Xob Hluav Taws Xob thiab Cov Kev Pabcuam Servo: Kev Qhia Tshwj Xeeb: Voltage: 2-3S Lipo lossis 6-9 NiMH Nruam tam sim no: 35A Tam sim no tawg: 160A BEC: 5V / 1A, tawm qauv: 1. pem hauv ntej & thim rov qab; 2. mus &nres; 3. rau pem hauv ntej & nres & thim rov qab: 34g Loj: 42*28*17mm
Cov Khoom Siv Hluav Taws Xob yooj yim & Kev Ntseeg: 7 Kauj Ruam
Cov Khoom Siv Hluav Taws Xob yooj yim & Kev xav: Hauv qhov haujlwm no kuv yuav qhia koj yuav ua li cas thiaj ua rau koj tus kheej lub hwj chim siv cov khoom siv yooj yim. Kuv yuav npog qhov kev xav yooj yim ntawm Transformers, kho kom raug thiab kev tswj hwm
Yuav Ua Li Cas Daim Ntawv Teeb Nrog Koj Cov Khoom Siv Hluav Taws Xob Xim Xim: 7 Kauj Ruam
Yuav Ua Li Cas Daim Ntawv Teeb Nrog Koj Cov Khoom Siv Hluav Taws Xob Teeb: Hauv qhov kev qhia no, peb yuav qhia koj yuav ua li cas txhawm rau txhawm rau txhawm rau koj Cov Khoom Siv Hluav Taws Xob Teeb kom ua cov ntawv teeb. Txog qhov kev qhia no, peb tau siv lub teeb tswm ciab teeb, ib qho ntawm Lub Teeb Li Pawg Thawj Coj cov qauv ntxiv. Txhua yam koj xav tau rau qhov kev qhia no yog qee daim npav, El