INHOUDSOPGAWE:

Ligte volg en vermy robot gebaseer op Arduino: 5 stappe
Ligte volg en vermy robot gebaseer op Arduino: 5 stappe

Video: Ligte volg en vermy robot gebaseer op Arduino: 5 stappe

Video: Ligte volg en vermy robot gebaseer op Arduino: 5 stappe
Video: Как отказ от порно спасёт твой мозг 2024, Julie
Anonim
Ligte volg en vermy robot gebaseer op Arduino
Ligte volg en vermy robot gebaseer op Arduino

Dit is 'n eenvoudige projek wat volg of vermy lig.

Ek het hierdie simulasie in Proteus 8.6 pro gemaak. Vereiste komponente: -1) Arduino uno.

2) 3 LDR.

3) 2 DC-ratmotors.4) Een servo.5) Drie 1k-weerstande.6) een H-Bridge l290D7) Een aan- en afschakelaar [om die toestand van die program te verander]

8) 9v en 5v Battry

Stap 1: Ardunio -kode

Arduino -kode word 'n bietjie -bit -datum op 23 Februarie 2016 gewysig]

Daar is baie kommentaar op hierdie kode, maar ek wil nie verduidelik nie, maar as u hulp nodig het, kontak my gerus by ([email protected])

Let wel: -Ek gebruik twee voorwaardes in hierdie program 1ste vir Light Following. 2e een vir Light vermyding.

Vir sover dit aan hierdie voorwaardes voldoen, sal Robot lig volg of vermy. [Dit is die minimum waarde van LDR wat ek kies. In normale lig is die reikwydte 80 tot 95, maar namate die intensiteit daarvan toeneem, word meer en meer spannings veroorsaak, aangesien dit werk aan die beginsel van spanningsverdeler int a = 400; // Tolaransiewaarde]

Stap 2: Proteus -lêers

Laai van die skakel af vir die Arduino -biblioteek

Stap 3: Hoe u H-brug werk

Hoe u H-brug werk
Hoe u H-brug werk
Hoe u H-brug werk
Hoe u H-brug werk

Die L293NE/SN754410 is 'n baie basiese H-brug. Dit het twee brûe, een aan die linkerkant van die chip en een aan die regterkant, en kan 2 motors bestuur. Dit kan tot 1 amp stroom dryf en werk tussen 4,5V en 36V. Die klein GS-motor wat u in hierdie laboratorium gebruik, kan veilig teen 'n lae spanning loop, sodat hierdie H-brug goed sal werk. Die H-brug het die volgende penne en kenmerke: Pin 1 (1, 2EN) aktiveer en deaktiveer ons motor, ongeag of dit HIGH of LOW is. Pin 2 (1A) is 'n logiese pen vir ons motor (invoer is HOG of LAAG) 3 (1Y) is vir een van die motorklemme Pin 4-5 is vir grond Pin 6 (2Y) is vir die ander motorterminale Pin 7 (2A) is 'n logiese pen vir ons motor (invoer is HOG of LAAG) Pin 8 (VCC2) is die kragtoevoer vir ons motor, moet dit gegewe die nominale spanning van u motor Pin 9-11 is nie gekoppel nie, aangesien u slegs een motor in hierdie laboratorium gebruik Pin 12-13 is vir grond Pin 14-15 is onaangeskakel Pin 16 (VCC1) is gekoppel aan 5V. Hierbo is 'n diagram van die H-brug en watter penne doen wat in ons voorbeeld. 'N Waarheidstabel bevat 'n waarheidstabel wat aandui hoe die motor sal werk volgens die toestand van die logiese penne (wat deur ons Arduino bepaal word).

In hierdie projek word die aktiveringspen verbind met 'n digitale pen op u Arduino, sodat u dit HOOG of LAAG kan stuur en die motor AAN of AF kan skakel. Die motorlogika -penne is ook gekoppel aan die aangewese digitale penne op u Arduino, sodat u dit HOOG en LAAG kan stuur om die motor in een rigting te laat draai, of LAAG en HOOG om dit in die ander rigting te laat draai. Die motor se toevoerspanning maak verbinding met die spanningsbron van die motor, wat gewoonlik 'n eksterne kragtoevoer is. As u motor op 5V en minder as 500mA kan werk, kan u die 5V -uitset van die Arduino gebruik. Die meeste motors benodig 'n hoër spanning en 'n hoër stroomverbruik as dit, dus u benodig 'n eksterne kragtoevoer.

Koppel die motor aan die H-brug Koppel die motor aan die H-brug soos aangedui op die 2de prent.

Of as u 'n eksterne kragtoevoer vir die Arduino gebruik, kan u die Vin -pen gebruik.

Stap 4: Hoe LDR werk

Die eerste ding wat moontlik verdere verduideliking benodig, is die gebruik van die ligafhanklike weerstande. Ligafhanklike weerstande (of LDR's) is weerstande waarvan die waarde verander na gelang van die hoeveelheid omringende lig, maar hoe kan ons weerstand met Arduino opspoor? U kan nie regtig nie, maar u kan die spanningsvlakke opspoor met behulp van die analoog penne, wat (in basiese gebruik) tussen 0-5V kan meet. Nou vra u moontlik 'Wel, hoe omskakel ons weerstandswaardes in spanningsveranderinge?', Dit is eenvoudig, ons maak 'n spanningsverdeler. 'N Spanningsverdeler neem 'n spanning in en gee dan 'n fraksie van die spanning af wat eweredig is aan die insetspanning en die verhouding van die twee waardes van weerstande wat gebruik word. Die vergelyking waarvoor dit is:

Uitgangsspanning = Ingangsspanning * (R2 / (R1 + R2)) Waar R1 die waarde van die eerste weerstand is en R2 die waarde van die tweede.

Dit laat nog steeds die vraag ontstaan: "Maar watter weerstandswaardes het die LDR?", 'N goeie vraag. Hoe minder omringende lig hoe hoër die weerstand, meer omringende lig beteken 'n laer weerstand. Vir die spesifieke LDR's het ek hul weerstandsbereik van 200 - 10 kilo ohm gebruik, maar dit verander vir verskillende, dus kyk gerus waar u dit gekoop het en probeer 'n datablad of iets dergeliks vind. geval R1 is eintlik ons LDR, dus laat ons die vergelyking terugbring en wiskundige e-magie doen (wiskundige elektriese magie). Nou moet ons die kilo ohm-waardes omskakel in ohm: 200 kilo-ohm = 200, 000 ohm 10 kilo-ohm = 10, 000 ohm So om te bepaal wat die uitgangsspanning is as ons in pikswart is, koppel ons die volgende getalle aan: 5 * (10000 / (200000 + 10000)) Die ingang is 5V, want dit is wat ons kry van die Arduino. Bogenoemde gee 0.24V (afgerond). Nou vind ons wat die uitgangsspanning in piekhelderheid is deur die volgende getalle te gebruik: 5 * (10000 / (10000 + 10000)) En dit gee ons presies 2.5V. Dit is dus die spanningswaardes wat ons in die analoog penne van die Arduino gaan kry, maar dit is nie die waardes wat in die program gesien sal word nie, "Maar hoekom?" mag jy vra. Die Arduino gebruik 'n analoog na digitale chip wat die analoog spanning omskakel in bruikbare digitale data. In teenstelling met die digitale penne op die Arduino wat slegs 'n HOOG of LAAG toestand van 0 en 5V kan lees, kan die analoog penne van 0-5V lees en dit omskakel in 'n getalreeks van 0-1023. Nou met nog meer wiskunde-e-magie. ons kan eintlik bereken watter waardes die Arduino eintlik sal lees.

Omdat dit 'n lineêre funksie sal wees, kan ons die volgende formule gebruik: Y = mX + C Waar; Y = Digitale Waarde Waar; m = helling, (styg / hardloop), (digitale waarde / analoog waarde) Waar; C = Y -afsnit Die Y -afsnit is 0, wat ons gee: Y = mXm = 1023 /5 = 204,6 Daarom: Digitale waarde = 204,6 * Analoog waarde Dus in pikswart is die digitale waarde: 204,6 * 0,24 Wat ongeveer 49 gee. En in piekhelderheid sal dit wees: 204,6 * 2,5 Wat ongeveer 511 gee. Met twee hiervan op twee analoog penne kan ons twee heelgetal veranderlikes skep om hul waardes twee op te slaan en vergelykingsoperateurs te doen om te sien watter een die laagste waarde het, draai die robot in daardie rigting.

Aanbeveel: