Përmbajtje:

Ndjekja dhe Shmangia e Robotit Bazuar në Arduino: 5 Hapa
Ndjekja dhe Shmangia e Robotit Bazuar në Arduino: 5 Hapa

Video: Ndjekja dhe Shmangia e Robotit Bazuar në Arduino: 5 Hapa

Video: Ndjekja dhe Shmangia e Robotit Bazuar në Arduino: 5 Hapa
Video: Измерьте ток до 500A с помощью шунтирующего резистора с помощью Arduino 2024, Nëntor
Anonim
Ndjekja dhe shmangia e lehtë e robotit bazuar në Arduino
Ndjekja dhe shmangia e lehtë e robotit bazuar në Arduino

Ky është një projekt i thjeshtë që ndjek ose Shmang Dritën.

Unë e bëra këtë Simulim në Proteus 8.6 pro. Komponentët e kërkuar: -1) Arduino uno.

2) 3 LDR.

3) 2 Dc Gear Motors.4) Një Servo.5) Tre Rezistorë 1k.6) një H-Bridge l290D7) Ndërprerës i ndezur dhe fikur [për ndryshimin e gjendjes së Programit]

8) Bateri 9v dhe 5v

Hapi 1: Kodi Ardunio

Kodi Arduino është modifikuar pak -datë 23 shkurt 2016]

Ky Kod është shumë i komentuar nuk dua të shpjegoj, por nëse keni nevojë për ndihmë, më lini të më kontaktoni në ([email protected])

Shënim: -Unë përdor dy kushte në këtë program të parë për dritën pasuese. 2 të dytën për shmangien e dritës.

Sa i përket këtyre Kushteve, Roboti do të Ndjekë ose Shmang Dritën. [Kjo është Vlera Minimale e LDR që unë zgjedh. Në dritën normale, diapazoni i tij është 80 në 95, por ndërsa intensiteti i tij rritet gjithnjë e më shumë tensione të shkaktuara nga ai, ndërsa ai punon në Parimin e Ndarësit të Tensionit në a = 400; // Vlera e Tolerancës]

Hapi 2: Skedarët Proteus

Për Bibliotekën Arduino shkarkoni nga ajo lidhje

Hapi 3: Si funksionon ura juaj H

Si funksionon ura juaj H
Si funksionon ura juaj H
Si funksionon ura juaj H
Si funksionon ura juaj H

L293NE/SN754410 është një urë H shumë themelore. Ka dy ura, një në anën e majtë të çipit dhe një në të djathtë, dhe mund të kontrollojë 2 motorë. Mund të drejtojë deri në 1 amp rrymë dhe të funksionojë midis 4.5V dhe 36V. Motori i vogël DC që po përdorni në këtë laborator mund të funksionojë në mënyrë të sigurt nga një tension i ulët kështu që kjo urë H do të funksionojë mirë. Ura H ka kunjat dhe veçoritë e mëposhtme: Kunja 1 (1, 2EN) mundëson dhe çaktivizon motorin tonë nëse është dhënë HIGH ose LOWPin 2 (1A) është një kunj logjik për motorin tonë (hyrja është LART or ose E ULT) Pin 3 (1Y) është për njërin nga terminalet e motorit Pin 4-5 janë për tokën Pin 6 (2Y) është për terminalin tjetër motorik Pin 7 (2A) është një kunj logjik për motorin tonë (hyrja është LART or ose E ULT) Pin 8 (VCC2) është furnizimi me energji për motorin tonë, kjo duhet të jepet me tensionin e vlerësuar të motorit tuaj Pin 9-11 nuk janë të lidhur pasi ju jeni duke përdorur vetëm një motor në këtë laborator Pin 12-13 janë për tokë Pin 14-15 janë të palidhur Pin 16 (VCC1) është lidhur me 5V. Mbi të është një diagramë e urës H dhe cilat kunja bëjnë atë që në shembullin tonë. E përfshirë në diagram është një tabelë e së vërtetës që tregon se si do të funksionojë motori sipas gjendjes së kunjave logjikë (të cilat janë vendosur nga Arduino -ja jonë).

Në këtë Projekt, kunja e aktivizimit lidhet me një kunj dixhital në Arduino tuaj, kështu që ju mund ta dërgoni atë LART HIGH ose ULJ dhe ta ndizni ose fikni motorin. Kunjat e logjikës motorike janë gjithashtu të lidhura me kunjat dixhitale të caktuara në Arduino tuaj, kështu që ju mund ta dërgoni atë LART and dhe ULOWS që motori të kthehet në një drejtim, ose LOW dhe LART që të kthehet në drejtimin tjetër. Tensioni i furnizimit me motor lidhet me burimin e tensionit për motorin, i cili zakonisht është një furnizim me energji të jashtme. Nëse motori juaj mund të funksionojë në 5V dhe më pak se 500mA, mund të përdorni daljen 5V të Arduino. Shumica e motorëve kërkojnë një tension më të lartë dhe një rrymë më të lartë se kjo, kështu që do t'ju duhet një furnizim me energji të jashtme.

Lidhni motorin me urën H Lidhni motorin me urën H siç tregohet në figurën e dytë.

Ose, nëse jeni duke përdorur një furnizim me energji të jashtme për Arduino, mund të përdorni pinin Vin.

Hapi 4: Si funksionon LDR

Tani gjëja e parë që mund të ketë nevojë për shpjegim të mëtejshëm është përdorimi i rezistencave të varura nga drita. Rezistentët e varur nga drita (ose LDR) janë rezistorë vlera e të cilëve ndryshon në varësi të sasisë së dritës së ambientit, por si mund ta zbulojmë rezistencën me Arduino? Epo nuk mundeni me të vërtetë, megjithatë mund të zbuloni nivelet e tensionit duke përdorur kunjat analoge, të cilat mund të matin (në përdorim bazë) midis 0-5V. Tani mund të pyesni "Epo si i konvertojmë vlerat e rezistencës në ndryshime të tensionit?", Simpleshtë e thjeshtë, ne bëjmë një ndarës të tensionit. Një ndarës i tensionit merr një tension dhe më pas nxjerr një pjesë të atij tensioni proporcional me tensionin hyrës dhe raportin e dy vlerave të rezistorëve të përdorur. Ekuacioni për të cilin është:

Tensioni i daljes = Tensioni i hyrjes * (R2 / (R1 + R2)) Ku R1 është vlera e rezistencës së parë dhe R2 është vlera e të dytit.

Tani kjo ende ngre pyetjen "Por cilat vlera të rezistencës ka LDR?", Pyetje e mirë. Sa më pak sasi e dritës së ambientit aq më e lartë është rezistenca, aq më shumë dritë ambienti do të thotë një rezistencë më e ulët. Tani për LDR -të e veçanta që kam përdorur, diapazoni i rezistencës së tyre ishte nga 200 - 10 kilogramë, por kjo ndryshon për ato të ndryshme, prandaj sigurohuni që të shikoni nga i keni blerë dhe të përpiqeni të gjeni një fletë të të dhënave ose diçka të llojit. Tani në këtë rasti R1 është në të vërtetë LDR-ja jonë, kështu që le ta kthejmë atë ekuacion dhe të bëjmë disa matematikë-magji (magji matematikore elektrike). Tani së pari ne duhet t'i shndërrojmë ato vlera kilogram ohm në ohms: 200 kilo-ohms = 200, 000 ohms 10 kilo-ohms = 10, 000 ohms Pra, për të gjetur se cili është tensioni i daljes kur jemi në ngjyrë të zezë, futim numrat e mëposhtëm: 5 * (10000 / (200000 + 10000)) Hyrja është 5V pasi kjo është ajo që po marrim nga Arduino. Sa më sipër jep 0.24V (të rrumbullakosura). Tani gjejmë se cili është tensioni i daljes në shkëlqimin maksimal duke përdorur numrat e mëposhtëm: 5 * (10000 / (10000 + 10000)) Dhe kjo na jep saktësisht 2.5V. Pra, këto janë vlerat e tensionit që ne do të futemi në kunjat analoge të Arduino, por këto nuk janë vlerat që do të shihen në program, "Por pse?" mund te pyesni. Arduino përdor një çip analog në dixhital i cili konverton tensionin analog në të dhëna dixhitale të përdorshme. Ndryshe nga kunjat dixhitale në Arduino që mund të lexojnë vetëm një gjendje LART HIGH ose TOW ULT duke qenë 0 dhe 5V, kunjat analoge mund të lexojnë nga 0-5V dhe ta shndërrojnë atë në një gamë numrash prej 0-1023. Tani me disa më shumë matematikë-e-magji Me ne në fakt mund të llogarisim se cilat vlera do të lexojë në të vërtetë Arduino.

Për shkak se ky do të jetë një funksion linear ne mund të përdorim formulën e mëposhtme: Y = mX + C Ku; Y = Vlera dixhitaleKu; m = pjerrësia, (ngritja / vrapimi), (vlera dixhitale / vlera analoge) Ku; Ndërprerja Y është 0 kështu që na jep: Y = mXm = 1023 /5 = 204.6 Prandaj: Vlera dixhitale = 204.6 * Vlera analoge Pra, në të zezë të zezë vlera dixhitale do të jetë: 204.6 * 0.24 Që jep afërsisht 49. Dhe në shkëlqimin maksimal do të jetë: 204.6 * 2.5 Që jep afërsisht 511. Tani me dy nga këto të vendosura në dy kunja analoge ne mund të krijojmë dy variabla të plotë për të ruajtur vlerat e tyre dy dhe të bëjmë operatorë krahasues për të parë se cili ka vlerën më të ulët, duke e kthyer robotin në atë drejtim.

Recommended: