Throwduino Basic - ljus-Sensing blinkande Throwie med 1 extra del - nu med Morsealfabetet (7 / 7 steg)

Steg 7:



Morsekod!

I detta steg får du Morsealfabetet... erm... koden för Throwdurino.

Fina med att lägga till en mikrokontroller är att vi kan fortsätta information. Denna skiss kan den samma throwie att blinka ut ett förprogrammerat meddelande i morsekod. Den första tröskeln inställningen rutin och ljus sensing metod är samma som för den ursprungliga skissen.

Redigera - det kan finnas ett fel i koden:

tröskel = (totalt >> 5); Ställ in tröskelvärdet i genomsnitt punkt (klyftan totala av 128).

bör nog vara:

tröskel = (totalt >>7); Ställ in tröskelvärdet i genomsnitt punkt (klyftan totala av 128).

Det har fungerat för mig eftersom det var men detta kan orsaka problem med den lätta avkänning. Jag kommer att kontrollera och korrigera om det behövs.

Tidpunkten för i Morse är inte riktigt lika snabbt som det bör vara - pauserna är alldeles för lång egentligen - men jag hittade strikt tidpunkten för fort för en novis att avkoda. Eller för tung på användning av batteriet. Jag tror det är ganska klart för motparten Morse Coder.

För att redigera meddelandet, hitta raden under överst på skissen:

CONST char flashSeq [] = {"mörka här ISNT det"}; Morse meddelande. Redigera den här.

och helt enkelt redigera som som du behöver.

För att minimera längden på skissen, erkänner det endast versaler. Allt annat kommer att behandlas som en "utrymme". Försök inte använda fler än 256 tecken eller är det troligt att krascha fruktansvärt.

Skissen är fäst och inklistrade nedan. Det bör sammanställa till omkring 1398 byte

Throwduino grundläggande - morsekod edition!
Ugi 2012
MIT license
Skrivit att köra på ATtiny25/45/85 med Arduino Tiny core - http://code.google.com/p/arduino-tiny/
Kommer inte kompilera för andra Arduinos (ATMega168, ATMega328 etc)
Se till att du väljer rätt styrelsen innan du kompilera.

För Ref:
ADC stift:
ADC1 = PB2
ADC2 = PB4
ADC3 = PB3

Om du bara vill ändra flash mönster, göra det här.
standard är:
//
CONST char flashSeq [] = {"mörka här ISNT det"}; Morse meddelande. Redigera den här.
//
Redigera meddelandet med versaler tecken endast.
Något annat kommer som en 1s dröjsmål.
Efter sekvensen vänta vi på 2s innan du upprepar.

CONST char flashSeq [] = {"mörka här ISNT det"}; Morse meddelande. Redigera den här.
CONST byte seqLength =(sizeof(flashSeq)-1);

Morsealfabetet kodning
Lagras som en byte per bokstav.
High 5 bitar är 1 för - och 0 för början med LSB av dessa high-5...
Låg 3 bitar ge antal blixtar (prickar + bindestreck).
Morse möjliggör 5 blixtar (för tal) men märker kräver 4 maximalt.
Detta format kan således användas för nummer också men jag har inte genomfört som.

CONST byte morse [26] = {
B00010010, //a
B00001100, //b
B00101100, //c
B00001011, //d
B00000001, //e
B00100100, //f
B00011011, //g
B00000100, //h
B00000010, //i
B01110100, //j
B00101011, //k
B00010100, //l
B00011010, //m
B00001010, //n
B00111011, //o
B00110100, //p
B01011100, //q
B00010011, //r
B00000011, //s
B00001001, //t
B00100011, //u
B01000100, //v
B00110011, //w
B01001100, //x
B01101100, //y
B00011100, //z
};
Nu låt oss göra en throwie för att ordna...

CONST int LEDpin = 4; Även om detta i en konstant, finns det en hel del direkt port tillgång
Jag skulle inte försöka ändra på detta utan gå throu "hela koden.

unsigned int tröskel = 10; Vi ska ställa detta ordentligt under installationen

Detta sätter upp några libs och definitioner för användning med insomningstimern
#include < avr/sleep.h >
#include < avr/wdt.h >
#ifndef cbi
#define cbi (sfr, lite) (_SFR_BYTE(sfr) & = ~_BV(bit))
#endif
#ifndef sbi
#define sbi (sfr, lite) (_SFR_BYTE(sfr) | = _BV(bit))
#endif

ISR(WDT_vect) {WDTCR| = B01000000;} / / reset Watchdog Timer till avbrottsläge varje gång.

Röra om med några register till inaktivera grejer & Ange referenser.
void setup() {
ADCSRB & = B10111111; Inaktivera comparitor
ACSR | = B10000000; Stäng av strömmen till comparitor
ADCSRA | = B10000000; / / slå på ADC
DDRB & = B11100000; Ange alla att mata in
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; Ställ in PB3 låg - detta var för testfasen. Förmodligen kan släppas nu.
PRR & = B11111110; tydlig ADC disable bit i makt minskade Reg
analogReference(6); inre 2.56v referera med ingen bypass - INTERNAL2v56NB-

Visa vi är vakna:
Flash(3); Tre blixtar - vi är igång.

Ställ in tröskelvärdet för ljus sensing under första 40 sekunder.
Vi tar 148 mätningar, bin de första 20 och sedan genomsnittlig nästa 128.
unsigned int totala = 0;
för (byte rep = 0; rep < 148; rep ++) {
int value=lightLevel();
int värde = 10;
IF(rep>19) {
totala += värde; tatke totalt 128 avläsningar
}
Flash(Value);

PAUSE(4); / / var pause(4)
DDRB| = B00011010; Ange 1, 3 och 4
PORTB & = B1110000; Allt låg
}
tröskel = (totalt >> 7); Ställ in tröskelvärdet i genomsnitt punkt (klyftan totala av 128).

Flash(Threshold); Detta är mest för felsökning ändamål.
}

Huvudloop
Vi mäter ljusnivån. Om den är låg blinkar vi våra sekvensen sedan sömn för 2s.
Om ljus nivå hög, vi sover för 8s.
void loop() {
analogReference(6); inre 2.56v referera med ingen bypass

Mäter ljusnivån och om det är tillräckligt låg, visar vår flash sekvens
om (lightLevel() < tröskel) {
flashMorse();
Om vi blinkar, sova vi nu för 4s
PAUSE(8);
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; PB3 låg.
}
annat {
Om vi inte blinkar då sover vi för 8s
PAUSE(9);
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; PB3 låg.
}

} / / end huvudloop

Mät ljuset genom att titta på spänning genereras av LED ansluten till D4 (A2) å pin 3 chip.
Ställa in produktionen och låg att börja att släppa ut någon avgift för mycket - inte säker på om vi behöver detta
int lightLevel() {
pinMode (LEDpin, OUTPUT);
digitalWrite (LEDpin, låg);
delayMicroseconds(50);
pinMode (LEDpin, indata);
delayMicroseconds(100); Låt det stabilisera som indata igen
unsigned int värde = analogRead(A2);
returnera värdet;
}

Flash rutin - 70ms, 250 ms off
Upprepa visst antal gånger och sedan Pausa 500ms
void flash(byte No) {
pinMode (LEDpin, OUTPUT);

IF (!. Nej) {/ / om vi får en nolla, bara pausa.
PAUSE(5);
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; PB3 låg.
}

Om vi hade ett noll antal blixtar, gör vi dem nu
för (byte rep = 0; rep < nej; rep ++) {
flashDot(70);
}

Paus (sova)
PAUSE(5);
DDRB| = B00011010; Ange 1 och 3
PORTB & = B11110111; PB3 låg.
}

Annullera paus (byte tid) {
DDRB & = B11100000; Ange alla att mata in
setup_watchdog(Time); Ställ in vänteperioden
system_sleep(); / / sova
}

void flashMorse() {
för (byte rep = 0; rep < seqLength; rep ++) {
byte index = 0;
om (flashSeq [rep] < 65 || flashSeq [rep] > 90) index = 0;
annat index = flashSeq [rep]-64;
IF(!index) pause(6);
annat {
byte dotdash = morse [index-1] >> 3; tas bara sekvens del (5 bitar) i dotdash
Prickar och streck enligt sekvens kodade i morse]
för (byte blinkar = 0; blinkar < ((morse[(index-1)] & B111)); blinkar ++) {
om (dotdash & 1)flashDot(160); om LSB är 1 sedan display en dash
annat flashDot(40); annars är det en prick
PAUSE(4); paus mellan blinkar - 256ms
dotdash >> = 1; rulla längs till nästa lite
}
PAUSE(5); Slutet av ordet paus 0.5s
}
}
}

Flash LED för tiden (< 256 ms) och paus för 250ms.
void flashDot (byte tid) {
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; PB3 låg.
PORTB| = B00010000; PB4 hög
Delay(Time);
PORTB & = B11101111; PB4 låg.
PAUSE(4);
}

Watchdog timer setup
Detta är specifikt för den ATTiny85 (+ tiny45 & tiny25) och kommer inte att kompilera för ATMega328 etc.
0 = 16ms, 1 = 32ms, 2 = 64ms, 3 = 128ms, 4 = 250ms, 5 = 500ms
6 = 1 SEK, 7 = 2 sek, 8 = 4 SEK, 9 = 8 SEK
void setup_watchdog (int period) {

bytevärdet;
om (period > 9) period = 9.
värde = period & B111;
om (period > 7) value| = (1 << 5);
Value| = (1 << WDCE);

MCUSR & = ~ (1 << WDRF);
Start 4-klockcykel tt sekvens
WDTCR | = (1 << WDCE) | (1 << Mimmi);
Ange nya watchdog timeout-värde
WDTCR = värde;
WDTCR | = _BV(WDIE);
}

ställa in systemet i lågeffektläge enligt
systemet vaknar upp när wtchdog är timeout
void system_sleep() {
CBI(ADCSRA,ADEN); Växla Analog till Digitalconverter av

set_sleep_mode(SLEEP_MODE_PWR_DOWN); viloläge är inställd här
sleep_enable();

sleep_mode(); Systemet sover här

sleep_disable(); Systemet fortsätter utförande här när watchdog timeout
SBI(ADCSRA,ADEN); Växla Analog till Digitalconverter på
PRR & = B11111110; tydlig ADC disable bit i makt minskade Reg
}
Ugi 2012
MIT license
Skrivit att köra på ATtiny25/45/85 med Arduino Tiny core - http://code.google.com/p/arduino-tiny/
Kommer inte kompilera för andra Arduinos (ATMega168, ATMega328 etc)
Se till att du väljer rätt styrelsen innan du kompilera.

För Ref:
ADC stift:
ADC1 = PB2
ADC2 = PB4
ADC3 = PB3

Om du bara vill ändra flash mönster, göra det här.
standard är:
//
CONST char flashSeq [] = {"mörka här ISNT det"}; Morse meddelande. Redigera den här.
//
Redigera meddelandet med versaler tecken endast.
Något annat kommer som en 1s dröjsmål.
Efter sekvensen vänta vi på 4s innan du upprepar.

CONST char flashSeq [] = {"mörka här ISNT det"}; Morse meddelande. Redigera den här.
CONST byte seqLength =(sizeof(flashSeq)-1);

Morsealfabetet kodning
Lagras som en byte per bokstav.
High 5 bitar är 1 för - och 0 för början med LSB av dessa high-5...
Låg 3 bitar ge antal blixtar (prickar + bindestreck).
Morse möjliggör 5 blixtar (för tal) men märker kräver 4 maximalt.
Detta format kan således användas för nummer också men jag har inte genomfört som.
CONST byte morse [26] = {
B00010010, //a
B00001100, //b
B00101100, //c
B00001011, //d
B00000001, //e
B00100100, //f
B00011011, //g
B00000100, //h
B00000010, //i
B01110100, //j
B00101011, //k
B00010100, //l
B00011010, //m
B00001010, //n
B00111011, //o
B00110100, //p
B01011100, //q
B00010011, //r
B00000011, //s
B00001001, //t
B00100011, //u
B01000100, //v
B00110011, //w
B01001100, //x
B01101100, //y
B00011100, //z
};
Nu låt oss göra en throwie för att ordna...

CONST int LEDpin = 4; Även om detta i en konstant, finns det en hel del direkt port tillgång
Jag skulle inte försöka ändra på detta utan gå throu "hela koden.

unsigned int tröskel = 10; Vi ska ställa detta ordentligt under installationen

Detta sätter upp några libs och definitioner för användning med insomningstimern
#include
#include
#ifndef cbi
#define cbi (sfr, lite) (_SFR_BYTE(sfr) & = ~_BV(bit))
#endif
#ifndef sbi
#define sbi (sfr, lite) (_SFR_BYTE(sfr) | = _BV(bit))
#endif

ISR(WDT_vect) {WDTCR| = B01000000;} / / reset Watchdog Timer till avbrottsläge varje gång.

Röra om med några register till inaktivera grejer & Ange referenser.
void setup() {
ADCSRB & = B10111111; Inaktivera comparitor
ACSR | = B10000000; Stäng av strömmen till comparitor
ADCSRA | = B10000000; / / slå på ADC
DDRB & = B11100000; Ange alla att mata in
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; Ställ in PB3 låg - detta var för testfasen. Förmodligen kan släppas nu.
PRR & = B11111110; tydlig ADC disable bit i makt minskade Reg
analogReference(6); inre 2.56v referera med ingen bypass - INTERNAL2v56NB-

Visa vi är vakna:
Flash(3); Tre blixtar - vi är igång.

Ställ in tröskelvärdet för ljus sensing under första 40 sekunder.
Vi tar 148 mätningar, bin de första 20 och sedan genomsnittlig nästa 128.
unsigned int totala = 0;
för (byte rep = 0; rep < 148; rep ++) {
int value=lightLevel();
int värde = 10;
IF(rep>19) {
totala += värde; tatke totalt 128 avläsningar
}
Flash(Value);

PAUSE(4); / / var pause(4)
DDRB| = B00011010; Ange 1, 3 och 4
PORTB & = B1110000; Allt låg
}
tröskel = (totalt >> 5); Ställ in tröskelvärdet i genomsnitt punkt (klyftan totala av 128).

Flash(Threshold); Detta är mest för felsökning ändamål.
}

Huvudloop
Vi mäter ljusnivån. Om den är låg blinkar vi våra sekvensen sedan sömn för 2s.
Om ljus nivå hög, vi sover för 8s.
void loop() {
analogReference(6); inre 2.56v referera med ingen bypass

Mäter ljusnivån och om det är tillräckligt låg, visar vår flash sekvens
om (lightLevel()
flashMorse();
Om vi blinkar, sova vi nu för 4s
PAUSE(8);
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; PB3 låg.
}
annat {
Om vi inte blinkar då sover vi för 8s
PAUSE(9);
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; PB3 låg.
}

} / / end huvudloop

Mät ljuset genom att titta på spänning genereras av LED ansluten till D4 (A2) å pin 3 chip.
Ställa in produktionen och låg att börja att släppa ut någon avgift för mycket - inte säker på om vi behöver detta
int lightLevel() {
pinMode (LEDpin, OUTPUT);
digitalWrite (LEDpin, låg);
delayMicroseconds(50);
pinMode (LEDpin, indata);
delayMicroseconds(100); Låt det stabilisera som indata igen
unsigned int värde = analogRead(A2);
returnera värdet;
}

Flash rutin - 70ms, 250 ms off
Upprepa visst antal gånger och sedan Pausa 500ms
void flash(byte No) {
pinMode (LEDpin, OUTPUT);

IF (!. Nej) {/ / om vi får en nolla, bara pausa.
PAUSE(5);
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; PB3 låg.
}

Om vi hade ett noll antal blixtar, gör vi dem nu
för (byte rep = 0; rep flashDot(70);
}

Paus (sova)
PAUSE(5);
DDRB| = B00011010; Ange 1 och 3
PORTB & = B11110111; PB3 låg.
}

Annullera paus (byte tid) {
DDRB & = B11100000; Ange alla att mata in
setup_watchdog(Time); Ställ in vänteperioden
system_sleep(); / / sova
}

void flashMorse() {
för (byte rep = 0; rep byte index = 0;
om (flashSeq [rep] < 65 || flashSeq [rep] > 90) index = 0;
annat index = flashSeq [rep]-64;
IF(!index) pause(6);
annat {
byte dotdash = morse [index-1] >> 3; tas bara sekvens del (5 bitar) i dotdash
Prickar och streck enligt sekvens kodade i morse]
för (byte blinkar = 0; blinkar < ((morse[(index-1)] & B111)); blinkar ++) {
om (dotdash & 1)flashDot(160); om LSB är 1 sedan display en dash
annat flashDot(40); annars är det en prick
PAUSE(5); paus mellan blinkar - 256ms
dotdash >> = 1; rulla längs till nästa lite
}
PAUSE(6); Slutet av ordet paus 1 s
}
}
}

Flash LED för tiden (< 256 ms) och paus för 250ms.
void flashDot (byte tid) {
DDRB| = B00011010; Ange 1,3 och 4
PORTB & = B11110111; PB3 låg.
PORTB| = B00010000; PB4 hög
Delay(Time);
PORTB & = B11101111; PB4 låg.
PAUSE(4);
}

Watchdog timer setup
Detta är specifikt för den ATTiny85 (+ tiny45 & tiny25) och kommer inte att kompilera för ATMega328 etc.
0 = 16ms, 1 = 32ms, 2 = 64ms, 3 = 128ms, 4 = 250ms, 5 = 500ms
6 = 1 SEK, 7 = 2 sek, 8 = 4 SEK, 9 = 8 SEK
void setup_watchdog (int period) {

bytevärdet;
om (period > 9) period = 9.
värde = period & B111;
om (period > 7) value| = (1 << 5);
Value| = (1 <

MCUSR & = ~(1<
Start 4-klockcykel tt sekvens
WDTCR | = (1 < / / ange nya watchdog timeout-värde
WDTCR = värde;
WDTCR | = _BV(WDIE);
}

ställa in systemet i lågeffektläge enligt
systemet vaknar upp när wtchdog är timeout
void system_sleep() {
CBI(ADCSRA,ADEN); Växla Analog till Digitalconverter av

set_sleep_mode(SLEEP_MODE_PWR_DOWN); viloläge är inställd här
sleep_enable();

sleep_mode(); Systemet sover här

sleep_disable(); Systemet fortsätter utförande här när watchdog timeout
SBI(ADCSRA,ADEN); Växla Analog till Digitalconverter på
PRR & = B11111110; tydlig ADC disable bit i makt minskade Reg
}

Se Steg
Relaterade Ämnen

Ljus intensitet mätning med hjälp av BH1715 och Raspberry Pi

Igår arbetade vi på LCD-skärmen visar, och samtidigt arbetar över dem vi insåg vikten av ljusintensiteten uträkning. Ljusintensiteten är inte bara viktigt i fysisk domän i denna värld men det har dess bra sagt roll i biologiska domän också. Korrekt u...

Ljus Sensing LED ficklampa

Varje dag, massor och massor av el och energi slösas bort från människor som oavsiktligt lämnar elektronik på, eller ficklampor. Denna uppfinning är den perfekta lösningen på det problemet. Ficklampan bara startar när den känner av att rummet är till...

Ljus intensitet uträkning med hjälp av BH1715 och partikel Photon

Igår arbetade vi på LCD-skärmen visar, och samtidigt arbetar över dem vi insåg vikten av ljusintensiteten uträkning. Ljusintensiteten är inte bara viktigt i fysisk domän i denna värld men det har dess bra sagt roll i biologiska domän också. Korrekt u...

Ljus intensitet uträkning med hjälp av BH1715 och Arduino Nano

Igår arbetade vi på LCD-skärmen visar, och samtidigt arbetar över dem vi insåg vikten av ljusintensiteten uträkning. Ljusintensiteten är inte bara viktigt i fysisk domän i denna värld men det har dess bra sagt roll i biologiska domän också. Korrekt u...

Kontrollera alla ljus eller elektrisk apparat med du Tablet PC eller smartphone (wifi)

Kontrollera alla ljus eller elektrisk apparat med du Tablet PC eller smartphone (wifi) med hjälp av arduino, blynk och en wemos / ESP8266 styrelsenI den här guiden kommer vi att göra något jag kallar en wifi kontrollerad ac switch. (Men den fungerar...

Telefon ljus till UV-ljus hacka! (Fungerar med andra lampor också!)

Hej Youtubes och Instructaganders det är jag TrollFaceTheMan, och idag ska jag visa ett snyggt trick att hacka nästan alla strandsatta LED ljus in i en primitiv UV ljus. Också i den här videon ska jag prova med en glödlampa och se hur den jämför.Förs...

Blinkande LED med 555 Timer

jag försöker sätta i en video men det fungerade inte för mig, så här är en länk till YouTube http://www.youtube.com/watch?v=9rS9nFG8xdIDet här är en detaljerad instruktion visar hur man bygger en blinkande LED med 555 Timer.Det finns ingen kunskap om...

LabVIEW Tutorials - att skapa en blinkande ledde med olika On/Off tider

I tidigare instructable här såg du hur skall skapa blinkande LED med samma ON/OFF tider. I denna tutorial, kan du se om hur du kan skapa en blinkande ledde med olika ON/OFF tider....

LabVIEW Tutorials - att skapa en blinkande Text med olika On/Off tider

I en av de tidigare instructables här såg du om hur du kan skapa en blinkande ledde med olika/på invandrarministrar labview. Och i en annan instructable du såg här om hur man skapar en blinkande text i labview. Båda kan vi skapa en blinkande text med...

AUTOMATISK ljus på/av kontroll med hjälp av TIMER

KOMPONENTLISTAAT89C2051LM7805DIODRELAYKRISTALLOSCILLATORGEMENSAM ANOD SJU SEGMENT DISPLAYTRANSFORMATORBC547 TRANSISTORBC557 TRANSISTORPROJEKTSPECIFIKATION4 siffriga 7 Segment 24 timmar Clock Timer är användning för kontroll valfri tillämpning. Du kan...

RGB snabbt och långsamt blinkande Throwies

här är det! En snabb eller långsam blinkar ledde Throwie som kommer att lysa upp vilket rum som helst! De är så ljusa och kommer att vara perfekt för alla projekt med barnen. Vi testade dem i vårt labb och de kommer sist i veckor (utan uppehåll) med...

Krets för blinkande lampor med musik

ÖVERSIKT:•These instruktioner kommer att visa dig hur man bygger en enkel krets som styr alla typer av lampor (som kopplar in i väggen) och blinkar dem tillsammans med i takt med musik•Endast enkel lödning färdigheter och en bit av elektroniska kunsk...

Fancy blinkande lysdioder med arduino

Detta är fancy ljus generator som är byggt med Arduino. Detta projekt använder fyra lysdioder och kontrolleras med hjälp av en microswitch(button switch) som utlöser dem till glöd lysdioder i olika sekvens och mönster...Uno är en i serien av USB Ardu...

Ljus Sensing lysdioder

jag var nyligen reserching på lysdioder och jag snubblade över denna sida när jag läste det jag hittade att lysdioderna inte bara används för att avge ljus men den har också förmågan att känsla ljus. Första använda LED som ljussensor låter komplicera...

Batteridriven gameboy ljus: ett annat projekt med SUGRU

vi älskar dem, vi spel med dem och de står som en av de största mobila konsoler av all tid. Men du fortfarande inte kan spela dem i mörkret. jagn detta projekt jag fixa en av Gameboy colour mest irriterande brister utan användning av det opålitligt,...

Ljus aktiveras blinkande lysdioder

i detta Instructable jag kommer att visa dig hur man sätter ihop en blinkande LED krets som startar när du vinkar handen över det, blinkar för en sekund eller två, och sedan tonas ut.Jag fick schematiskt för blinkande kretsen från steven123654's inst...

Ljus/mörk detektor med en op-förstärkare

Detta är en enkel demonstration visar hur du använder en op-förstärkare och en fotocell för att förnimma ljus eller mörker.Du behöver:LM741 Op-amp Digikey del #LM741CNNS/NOPB-ND10 kΩ 1/4 Watt resistor Digikey del #CF14JT10K0CT-ND470 Ω 1/4 Watt Resist...

Ljus/mörk sensor med hjälp av integrerade ljus

Inledning: ledde sänder ut ljus när spänning läggs med korrekt polaritet ström genom ledde kan kontrolleras av light.now dagar många elektriska apparater kontrolleras med hjälp av light.when ljus är närvarande enheter fungerar annars de kommer att st...

Blinkande lysdiod med Arduino Nano

Hej vänner,Att se en blinkande lysdiod är så roligt, men när du gör en liknande det själv då roligt är ännu mer. ^_^Låt roligt börjar,I detta instructable, har jag visat om hur blinka en LED med Arduino Nano.Obs: jag inte använde motstånd i detta ins...