Infra röd Vest kod (1 / 4 steg)
Steg 1: Testa Arduino kod
Problemet är, vi har koden för flexibel LED-strip i C...
se min instructable:
... men vi har infraröd biblioteket i Arduino kod! Tror du att dessa två bitar av kod kan slås ihop sådär? Fel!
Så först får våra infraröd skiss på Arduino.
I Jeelabs.org butik du kan köpa en infraröd plugg och i biblioteket hamnar i Jeelabs.org det är exempel få infraröd signal.
Dessa är alla mycket bekvämt, och det fungerar, men... du har inte lärt oss för mycket! Verkligen inte hur du port det slå samman det med annan kod.
Infra röd enheter:
Du kan också, och ganska lätt, gör den skickar och tar emot dig. Den speciella IR dioden med frekvens controller (endast tar emot 38 kHz) är ca 1.60 euro vid conrad.nl och fungerar direkt.
Avsändaren behöver en 555 timer för att sända på 38kHz och du kan hitta scheman överallt, på jeelabs.org, men också här:
länk:
http://davebodnar.com/Railway/Pulsed_IR_Article/
Anpassa koden
Om du börjar utforska den infra röda delen av portar är det första du märker skillnaden i digitalWrite och digiWrite av Jeelabs. Eftersom mitt mål är AVR C kod i AVR-projekt har jag att skriva om digiWrites i digitalWrites (och sedan till C i nästa steg). Detta är inte alltför svårt, eftersom du kan hitta en enkel konverteringstabell på webbplatsen Jeelabs:
http://jeelabs.net/projects/Hardware/wiki/JeeNode
Funktioner vänster
Hamnar är i C++ och vi går till Arduino C, så c ++ objekt måste skrivas om. Det är också lätt, inga riktiga objektstruktur används. Så får vi ett Arduino skript med funktioner från biblioteket, inte använder biblioteket hamnar längre.
Dessa är de funktioner kvar för infraröd användning:
Konfigurera (uint8_t slot4, uint8_t gap256);
Poll();
Done();
och vi behöver några globals:
uint8_t kortplats, gap, buf [40];
char fyllning.
uint32_t föregående;
Nu denna char fylla fungerar variabel i Arduino kod, men inte i AVR-Gcc! Det måste ändras i ett heltal, eftersom den använder negativa värden...
Om du har infraröd diod kan du testa med följande skiss:
http / /: www.contrechoc.com/instructables/infra_red_arduino_code.pde
där PC3, eller analog 3, eller digital 17 är ingångsstift för infraröd diod enheten (används här som en digital PIN).
Jag har använt pin 6 och 7 att driva min flytande display för testning.
Du kan se jag ingår bibliotek som används av funktionerna från portar-lib:
WProgram.h
stdint.h
AVR/pgmspace.h
util/Atomic.h
Annars får du fel på ATOMIC tillstånd etc.
(I denna skiss fyllningen är fortfarande en char.)
Kontrollera
Kontroll av infraröd koden arbetar från Arduino är lätt: bara använda fönstret serial.
Kontroll från avr-gcc är inte så enkelt, så redan i den Arduino kod fasen jag lagt till en flytande kristaller för att kontrollera om den seriella produktionen också förekommer på små flytande jordskorpans skärmen. (Detta Vätskekristall är kopplad till en Attiny2313.)
Dolda Arduino filer
Arduino koden är bekvämt om man jämför med AVR C. Detta gör det lätt är den stora framgången av Arduino! Kommer ett litet steg längre som mig men du måste förstå lite hur denna framgång har möjliggjorts.
Så bakom ARduino srcipt liggs C.
Portar använder också specialfiler Arduino (gömd i mapparna arduino och kopplat med en osynlig makefile).
Till exempel:
I AVR-Gcc jag inte kan använda digitalWrite etc om antingen jag göra min egen funktion eller använder Arduino-filer. Jämväl för funktionen mikro.