Remote control (9 / 17 stap)

Stap 9: De "Code" :)) externe code


De code is vrij groot en het is vrij moeilijk uit te leggen en ook geen foto's helpt: P
De eerste pogingen kreeg ik 99% microcontroller geheugen, de flitser en de RAM, dus ik geleerd te gebruiken "programem" in te schrijven een int EPROM, ook LCD stuurprogramma of bibliotheek... en nog veel meer.

OK laten we beginnen met het LCD-scherm.

Eerst moet u de bibliotheek #include. In de bibliotheek maakte ik een klasse zo "statische PCF8814 lcd;" nuttig kan zijn, zodat u het kunt gebruiken zoals "lcd.print ("auto-remote")". Ik zette het LCD-scherm van de kant in het geval dus in setup is zoiets als dit "lcd.begin(); LCD.Rotate(1);". De functie van het begin begint het LCD-scherm en definieer de pinnen dat gebruik van de arduino te conect met LCD-scherm, dus als u verbinding moet maken in andere pins, Raadpleeg de PCF8814.h om er zeker van te zijn dat de volgorde van de pins maar ik denk is als dit, van standaard lcd.begin(13,11,12,10); Rotate() met 1 zet de img op lcd kant naar beneden en met 0 is normaal.

u kunt afdrukken met lcd.print() koord; de cursor met lcd.setCursor(y,x), y wordt de rij (1 nld = 8 pixels) op dit lcd heb je 8 rijen, eerste rij is 0 laatste 7 en y wordt het nummer van de pixel uit depot naar rechts; en kunt u meer doen, maar u zult het later zien.

Nu hoe te lezen van de analoge toetsen.

int analogValue = analogRead(analogKeyPin); / / / geeft een waarde afhankelijk van wat u knop duwen (gewoon kijken naar de schema's en proberen om na te denken waar de lopende stromen, zul je diferit rezistance op elke knop). seriële monitor kunt u lezen van hen of de lcd.print(analogValue) te drukken ze op LCD-scherm, dan sommige als-s of -switch/case en je bent klaar bv.

 if (analogValue > 25 && analogValue < 40){ key = "meniu"; } 
 else if (analogValue > 40 && analogValue < 70){key = "back"; } 

Ik gebruikte de tekenreeks voor het opslaan van de sleutel, omdat is gemakkelijker te programma maar een int kunt u meer RAM-geheugen opslaan.

De bigest probleem dat ik had was de tekenreeksen voor de menius dus ik de programem gebruikte voor het blokkeren van de snaren in flash-geheugen. Dus maakte ik een matrix als volgt:

 prog_char meniu_0[] PROGMEM = "Obtions"; prog_char meniu_1[] PROGMEM = "Autoset"; prog_char meniu_2[] PROGMEM = "Stearing set"; 
 PROGMEM const char *meniu[] = { meniu_0,meniu_1, meniu_2 }; 

Op deze manier kunt u easyely genereren de menius

 for (uint8_t x = 0; x < 7 ; x++){ // 7 is the number of option you have in menu, so stop the for at 6 poz lcd.setCursor(6, x); //read from progrmem strcpy_P(buffer, (char*)pgm_read_word(&(meniu[pozMeniu + x]))); lcd.print(buffer); } 

7 is het aantal optie hebt u in het menu, zodat de "voor" 7 keer, vervolgens instellen cursor af te drukken vanuit de eerste row(0) met x als dit gaat in de volgende nld als de prog maken de tweede keer de voor, ik beginnen de afdrukopties van de 6de pixel omdat van 0 tot 6 ik cursor zal trekken. Nu strcpy_P functie kopiëren de tekenreeks programen in een buffer die ik verklaar met 50 tekens is een beetje te veel, maar je hebt om er zeker van te zijn dat is genoeg, nadat die alleen de buffer afdrukken.

 pgm_read_word(&(meniu[pozMeniu + x])) 

dit leest de waarde van programem matrix menu [0], als de pozMeniu en x is "0". Ik gebruik pozMeniu omdat wanneer zal ik de cursor en ik wil Navigeer naar boven en beneden en laten we zeggen ik heb 10 obtions een slechts 7 rijen, als ik ga met de cursor op de 7de optie en ik wil gaan downer ik alleen maar pozMeniu maken zal = 1 als dit druk ik zal beginnen met de tweede optie en op de 7de rij zal ik heb de 8e optie. Voor dat ik maakte een kleine functie waarvoor u een parameter, het aantal obtions. Dus voor de laatste is voorbeeld "upDown_navigate(6);" (ook start tellen met "0"). Als je de code downloaden heb ik de functie er uitgelegd.

De upDown_navigate(); ook geeft als resultaat een "pozCursor" dat het veranderen zal wanneer u omhoog en omlaag gaan, zodat u kunt een cursor als volgt afdrukken:

 lcd.setCursor(0, pozCursor); 
 lcd.print("\2"); 

De "/ 2" is de tweede char dat ik definiëren. is de cursor die een zei. Ja, u kunt het toevoegen van aangepaste tekens, ziet u in de link met de volledige code.

Als u wilt doen van een submenu kunt u het doen uitzien (is gewoon een idee, ik maakte het zo uitziet):

"niveau" - deze i gebruiken in void loop naar een specifieke scherm (ik heb de functie voor elke menu)
"countUpDown" - Dit is gegenereerd door upDown_navigate(), slaat de positie op de matrix (je weet wel wat obtion die u selecteert)

 <p>if (key == "ok"){ switch (countUpDown) { case 0: level = 2; countUpDown = 0; pozCursor = 0; pozMeniu = 0; lcd.clear(); break; case 1: level = 3; countUpDown = 0; pozCursor = 0; pozMeniu = 0; lcd.clear(); break; case 2: level = 4; countUpDown = 0; pozCursor = 0; pozMeniu = 0; lcd.clear(); break; 

Gerelateerde Artikelen

Remote Controlled Confetti kanon

Remote Controlled Confetti kanon

Confetti kanonnen zijn een heleboel plezier. Een explosie van confetti kan een feest beter maken. Maar het is niet altijd handig zijn als iemand naast het kanon te verrekenen. Dus vandaag ga ik u tonen hoe te maken van een externe gecontroleerde conf
DIY Arduino Remote Control en Lego RC voertuig!

DIY Arduino Remote Control en Lego RC voertuig!

UPDATE (8/29/13): dank u lezers voor uw enthousiasme en soort opmerkingen met betrekking tot dit project! Het is een geweldige reis sinds ik begon dit project terug in maart, maar ik ben erg blij met het resulterende product en de opwinding waarmee h
Remote controlled webcam met behulp van de Arduino, SensorMonkey, jQuery en Justin.tv

Remote controlled webcam met behulp van de Arduino, SensorMonkey, jQuery en Justin.tv

Web in te schakelen voor uw interactieve sensoren over desktop, smartphone en tablet apparaten.Deze tutorial beschrijft in detail hoe met de gratis SensorMonkey -service op afstand besturen van een pan en tilt webcam aangesloten op een Arduino met ni
Arduino Remote Control (ARC)

Arduino Remote Control (ARC)

In dit project, zullen we het maken van een Arduino Remote Control (ARC) die elke infrarood (IR) afstandsbediening in hex of enige andere vorm ontcijferen en deze gebruiken om te schakelen LED on/off!Het is een vrij eenvoudig project en zou kunnen wo
Remote Controlled onderzeeër / Underwater ROV

Remote Controlled onderzeeër / Underwater ROV

wat is er leuker dan het verkennen van de diepten van donker, het vinden van nieuwe visplaatsen, boot onderhoud of schat met uw zeer eigen Remote Controlled onderzeeër ontdekken? I 'm gonna worden verwijst naar de extern gecontroleerde onderzeeër als
IOS/Android Remote Controlled Blimp met Video-Feedback

IOS/Android Remote Controlled Blimp met Video-Feedback

In een luchtballon van een oog.Dit project was de blikvanger van mijn artiest In residentie in Instructables.Zoals RC blimps mijn passie zijn, wilde ik zeker doen van sommige blimp project tijdens mijn verblijf op Instructables.  Toen kwam ik de Dens
Hoe aan remote controle van uw iPhone, iPad van computer - via USB

Hoe aan remote controle van uw iPhone, iPad van computer - via USB

Hoe om remote control afstandsbediening,, iPhone iPad vanaf computer verbinding maakt via USB - werken op Windows of MacUw iOS-apparaat moet zijn jailbroken voor dit om te werken. Deze tutorial zal niet gaan over hoe jailbreak uw apparaat.Zorgen voor
Bouwen van een enorme RC MONSTER TRUCK - Golf Cart wielen - bromfiets Motor - Remote Controlled

Bouwen van een enorme RC MONSTER TRUCK - Golf Cart wielen - bromfiets Motor - Remote Controlled

hier is een DIY te bouwen van een enorme RC Monster Truck. U zult moeten hebben een lasser.Ik heb genoten zien remote controlled vrachtwagens een lange weg afgelegd in de afgelopen paar decennia. Ik heb zelfs het bezit verscheidene van hen langs de w
Remote Controlled kreeft

Remote Controlled kreeft

ik weet dit gekke klein kind, alles wat hij wilde voor Kerstmis een externe gecontroleerde Kreeft was.Hij vroeg zijn ouders... hij gevraagd Santa... hij vroeg iedereen die wilde luisteren.Helaas...  "Surf - Remote Controlled kreeft - niet overeenkome
Aflevering 7: Remote Controlled ballon van het Water

Aflevering 7: Remote Controlled ballon van het Water

deze zomer, zorg ervoor dat u bereid bent om het loon van een water gevecht met The Remote Controlled ballon van het Water!De nieuwste creatie van dom uitvindingen zorgt ervoor dat u droge blijven zult terwijl uw vijanden doorweekte krijgen!Gewoon ki
Met behulp van 433 MHz Remote Controlled schakelaars op Arduino

Met behulp van 433 MHz Remote Controlled schakelaars op Arduino

Ik denk dat iedereen weet die extern gecontroleerde schakelaars die in hun meest eenvoudige vorm komen in een aantal (meestal 3) voor switcheable apparaten aansluiten op het lichtnet stopcontact en die ontvangt een stekker van een lamp of iets en dat
Remote controlled Robotic Arm (MeArm) met behulp van pfodApp

Remote controlled Robotic Arm (MeArm) met behulp van pfodApp

Update: 27 augustus 2015Dit project is bijgewerkt met de correcties die nodig zijn om het werk van MeArm betrouwbaar. Deze oplossingen bestaan uita) met behulp van een aanbod van de 5V 3A en het verwijderen van de Uno-polyfuse enb) toe te voegen een
Remote Controlled Band Flyer Lamp

Remote Controlled Band Flyer Lamp

Laten we aftrap dit ding met een paar prejudiciële vragen.Heb je ogen?Marajk ontzagwekkende dingen?Als u hebt ja geantwoord op meer dan geen van deze vragen, dan heb ik het perfecte project voor u!Ik ga u tonen hoe te maken van een externe gecontrole
Remote Controlled Pan en Tilt hoofd

Remote Controlled Pan en Tilt hoofd

ik wilde altijd al een remote controlled pan en tilt kop. Misschien was het voor mijn videocamera, een elastiekje shooter of een waterpistool aimer. Het maakt eigenlijk niet uit wat je op het bovenste dek (zolang het is niet te zwaar), met dit kleine
Remote Controlled grasmaaier

Remote Controlled grasmaaier

Remote controlled grasmaaier.  De maaier dek is een 22 inch Weedeater van WalMart.  De rolstoel motoren zijn verdiensten.  De motoren draaien op 12 volt en de batterij wordt opgeladen door de Dynamo van een GM.  De zender is een Futaba T4YF. De snelh