Arduino: vad kan man göra med det. Arduino för nybörjare: steg-för-steg-instruktioner. Arduino-programmering och projekt: Var ska man börja? Arduino design

I den här artikeln bestämde jag mig för att samla en komplett steg för steg guide för nybörjare i Arduino. Vi kommer att titta på vad Arduino är, vad du behöver för att börja lära dig, var man laddar ner och hur man installerar och konfigurerar programmeringsmiljön, hur det fungerar och hur man använder programmeringsspråket och mycket mer som är nödvändigt för att skapa fullfjädrad komplexa enheter baserade på familjen av dessa mikrokontroller.

Här ska jag försöka ge ett förtätat minimum så att du förstår principerna för att arbeta med Arduino. För en mer fullständig fördjupning i världen av programmerbara mikrokontroller, var uppmärksam på andra avsnitt och artiklar på denna webbplats. Jag kommer att lämna länkar till annat material på denna sida för en mer detaljerad studie av vissa aspekter.

Vad är Arduino och vad är det till för?

Arduino är en elektronisk byggsats som låter vem som helst skapa en mängd olika elektromekaniska enheter. Arduino består av mjukvara och hårdvara. Mjukvarudelen innehåller en utvecklingsmiljö (ett program för att skriva och felsöka firmware), många färdiga och bekväma bibliotek och ett förenklat programmeringsspråk. Hårdvaran innehåller en stor rad mikrokontroller och färdiga moduler för dem. Tack vare detta är det väldigt enkelt att arbeta med Arduino!

Med hjälp av Arduino kan du lära dig programmering, elektroteknik och mekanik. Men det här är inte bara en pedagogisk konstruktör. Baserat på det kan du göra riktigt användbara enheter.
Från enkla blinkljus, väderstationer, automationssystem och slutar med smarta hemsystem, CNC-maskiner och obemannade flygfarkoster. Möjligheterna begränsas inte ens av din fantasi, eftersom det finns ett stort antal instruktioner och idéer för implementering.

Arduino startpaket

För att börja lära dig Arduino måste du skaffa själva mikrokontrollerkortet och ytterligare delar. Det är bäst att köpa ett Arduino startpaket, men du kan välja allt du behöver själv. Jag rekommenderar att du väljer ett set eftersom det är enklare och ofta billigare. Här är länkar till de bästa uppsättningarna och individuella delarna som du definitivt kommer att behöva studera:

Grundläggande Arduino-kit för nybörjare:köpa
Stort set för utbildning och första projekt:köpa
Uppsättning av ytterligare sensorer och moduler:köpa
Arduino Uno är den mest grundläggande och bekväma modellen från linjen:köpa
Lödfri brödbräda för enkel inlärning och prototyper:köpa
Uppsättning av ledningar med praktiska kontakter:köpa
LED-uppsättning:köpa
Motståndssats:köpa
Knappar:köpa
Potentiometrar:köpa

Arduino IDE utvecklingsmiljö

För att skriva, felsöka och ladda ner firmware måste du ladda ner och installera Arduino IDE. Detta är ett mycket enkelt och bekvämt program. På min hemsida har jag redan beskrivit processen att ladda ner, installera och konfigurera utvecklingsmiljön. Så här lämnar jag bara länkar till senaste versionen program och

Version Windows Mac OS X Linux
1.8.2

Arduino programmeringsspråk

När du har ett mikrokontrollkort i dina händer och en utvecklingsmiljö installerad på din dator kan du börja skriva dina första skisser (firmware). För att göra detta måste du bli bekant med programmeringsspråket.

Arduino-programmering använder en förenklad version av C++-språket med fördefinierade funktioner. Precis som i andra C-liknande programmeringsspråk finns det ett antal regler för att skriva kod. Här är de mest grundläggande:

  • Varje instruktion måste följas av ett semikolon (;)
  • Innan du deklarerar en funktion måste du ange vilken datatyp som returneras av funktionen, eller ogiltig om funktionen inte returnerar ett värde.
  • Det är också nödvändigt att ange datatypen innan en variabel deklareras.
  • Kommentarer betecknas: // Inline och /* block */

Du kan lära dig mer om datatyper, funktioner, variabler, operatorer och språkkonstruktioner på sidan på Du behöver inte memorera och komma ihåg all denna information. Du kan alltid gå till referensboken och titta på syntaxen för en viss funktion.

All Arduino firmware måste innehålla minst 2 funktioner. Dessa är setup() och loop().

inställningsfunktion

För att allt ska fungera måste vi skriva en skiss. Låt oss få lysdioden att lysa efter att ha tryckt på knappen och slockna efter nästa tryck. Här är vår första skiss:

// variabler med stift för anslutna enheter int switchPin = 8; int ledPin = 11; // variabler för att lagra knappens status och LED boolean lastButton = LÅG; boolean currentButton = LÅG; boolesk ledOn = false; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // funktion för att debouncing boolean debounse(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( delay ( 5); current = digitalRead(switchPin); ) returström; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite(ledPin, ledOn); )

// variabler med stift för anslutna enheter

int switchPin = 8 ;

int ledPin = 11 ;

// variabler för att lagra status för knappen och lysdioden

boolean lastButton = LÅG ;

boolean currentButton = LÅG ;

boolean ledOn = false ;

void setup() (

pinMode(switchPin, INPUT);

pinMode(ledPin, OUTPUT);

// funktion för avstudsning

boolean debounse (boolean sist ) (

boolesk ström = digitalRead(switchPin);

if (sista != aktuell ) (

fördröjning(5);

ström = digitalRead(switchPin);

returström ;

void loop() (

currentButton = debounse(lastButton);

if (lastButton == LOW && currentButton == HIGH ) (

ledOn = ! ledOn ;

lastButton = currentButton ;

digitalWrite(ledPin, ledOn);

I den här skissen skapade jag en extra debounse-funktion för att undertrycka kontaktstuds. Det finns information om kontaktstuds på min hemsida. Var noga med att kolla in detta material.

PWM Arduino

Pulsbreddsmodulering (PWM) är processen att styra spänningen med hjälp av en signals arbetscykel. Det vill säga att med PWM kan vi smidigt kontrollera belastningen. Till exempel kan du smidigt ändra ljusstyrkan för en LED, men denna förändring i ljusstyrka erhålls inte genom att minska spänningen, utan genom att öka intervallen för den låga signalen. Funktionsprincipen för PWM visas i detta diagram:

När vi applicerar PWM på lysdioden börjar den snabbt lysa och slockna. Det mänskliga ögat kan inte se detta eftersom frekvensen är för hög. Men när du spelar in video kommer du med största sannolikhet att se ögonblick när lysdioden inte lyser. Detta kommer att hända förutsatt att kamerans bildhastighet inte är en multipel av PWM-frekvensen.

Arduino har en inbyggd pulsbreddsmodulator. Du kan bara använda PWM på de stift som stöds av mikrokontrollern. Till exempel har Arduino Uno och Nano 6 PWM-stift: dessa är stift D3, D5, D6, D9, D10 och D11. Stiften kan skilja sig åt på andra brädor. Du kan hitta en beskrivning av tavlan du är intresserad av

För att använda PWM i Arduino finns det en funktion.Den tar som argument pinnumret och PWM-värdet från 0 till 255. 0 är 0% fyllning med en hög signal, och 255 är 100%. Låt oss skriva en enkel skiss som ett exempel. Låt oss få lysdioden att lysa mjukt, vänta en sekund och tona ut lika smidigt, och så vidare i oändlighet. Här är ett exempel på hur du använder den här funktionen:

// Lysdioden är ansluten till stift 11 int ledPin = 11; void setup() ( pinMode(ledPin, OUTPUT); ) void loop() ( för (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) ( analogWrite(ledPin, i); delay(5); ) )

// LED ansluten till stift 11

int ledPin = 11 ;

void setup() (

pinMode(ledPin, OUTPUT);

void loop() (

för (int i = 0 ; i< 255 ; i ++ ) {

analogWrite(ledPin, i);

fördröjning(5);

fördröjning(1000);

för (int i = 255; i > 0; i -- ) (

En serie artiklar och träningsdiagram med amatörradioexperiment på Arduino för nybörjare. Detta är en amatörradioleksakskonstruktör från vilken, utan lödkolv, etsning av tryckta kretskort och liknande, vilken elektronikkokare som helst kan sätta ihop en fullfjädrad arbetsenhet, lämplig för både professionell prototypframställning och amatörexperiment i studier av elektronik .


Arduino-kortet är främst avsett för att lära nybörjare radioamatörer grunderna i att programmera mikrokontroller och skapa mikrokontrollerenheter med sina egna händer utan seriös teoretisk träning. Arduinos utvecklingsmiljö låter dig kompilera och ladda färdig programkod till kortets minne. Dessutom är det extremt enkelt att ladda koden.

Arduino var man ska börja för en nybörjare

Först och främst, för att arbeta med Arduino-kortet, måste en nybörjare elektronikingenjör ladda ner Arduino-utvecklingsprogrammet; det består av en inbyggd textredigerare där vi arbetar med programkod, ett meddelandeområde, ett textutmatningsfönster (konsoll) ), ett verktygsfält med knappar för ofta använda kommandon och flera menyer. För att ladda ner sina program och kommunicera är detta program anslutet till Arduino-kortet via en vanlig USB-kabel.


Kod skriven i Arduino-miljön kallas skiss. Det är skrivet i textredigerare, som har specialverktyg för att infoga/klippa ut, ersätta/söka text. Under lagring och export visas förklaringar i meddelandefältet (se bilden i första lektionen för nybörjare, precis nedan), och fel kan också visas. Konsolen visar Arduino-meddelanden, inklusive fullständiga felrapporter och annan användbar information. Verktygsfältsknappar låter dig kontrollera och spela in en skiss, öppna, skapa och spara den, öppna seriell bussövervakning och mycket mer.

Så låt oss gå vidare till den första lektionen av Arduino-kretsar för nybörjare elektronikingenjörer.

För nybörjares bekvämlighet har Arduino UNO-kontrollern redan ett motstånd och en lysdiod ansluten till stift 13 på kontakten, så vi behöver inga externa radioelement i det första experimentet.


Genom att ladda koden tillåter Arduino vårt program att delta i systeminitieringen. För att göra detta indikerar vi för mikrokontrollerns kommandon att den kommer att köras vid tidpunkten för den första uppstarten och sedan helt glömma bort dem (dvs dessa kommandon kommer att utföras av Arduino endast en gång vid start). Och det är för detta ändamål som vi i vår kod väljer ett block där dessa kommandon lagras. void setup(), eller snarare i utrymmet innanför den här funktionens lockiga hängslen, se programskissen.

Glöm inte bort tandställning! Förlusten av minst en av dem kommer att göra hela skissen helt ogenomförbar. Men lägg inte in extra parentes heller, eftersom detta också kommer att orsaka ett fel.

Ladda ner kod:
Skiss med kommentarer och förklaringar i filen 001-1_mig-led.ino

Fungera void loop() det är här vi lägger kommandona som kommer att köras så länge som Arduino är påslagen. Efter att ha börjat köra från det första kommandot, kommer Arduino att nå slutet och omedelbart gå till början för att upprepa samma sekvens. Och så vidare ett oändligt antal gånger, så länge kortet får ström. I dess kärna är en void loop huvudfunktionen, ingångspunkten till Arduino.


Fungera dröjsmål(1000) fördröjer programbehandlingen med 1000 millisekunder. Allt pågår i en evig cykel slinga().

Huvudslutsatsen efter att ha förstått vårt första program på Arduino: Med hjälp av void loop och void setup-funktionerna skickar vi våra instruktioner till mikrokontrollern. Allt som finns inuti inställningsblocket kommer endast att köras en gång. Innehållet i loopmodulen kommer att upprepas i en loop så länge som Arduino förblir påslagen.

I det föregående programmet var det en andra fördröjning mellan att tända och släcka lysdioden. Det fanns ett stort minus i den enklaste koden för en nybörjare Arduino-operatör som användes ovan. För att hålla en paus mellan att slå på och av lysdioden i en sekund använde vi funktionen dröjsmål() och därför kan styrenheten för närvarande inte utföra andra kommandon i huvudfunktionen slinga(). Korrigera kod i en funktion slinga(), som presenteras nedan löser detta problem.

Istället för att ställa in värdet på HIGH och sedan till LOW, kommer vi att få värdet på ledPin och invertera det. Låt oss säga att om den var HÖG kommer den att bli LÅG osv.

Andra Arduino-kodalternativ för LED-kontroll Här:

Då kan du byta ut funktionen dröjsmål(). Istället är det bättre att använda funktionen millis(). Den returnerar antalet millisekunder som har gått sedan programmet startade. Funktionen kommer att svämma över efter cirka 50 dagars körning av programkoden.

En liknande funktion är micros(), som returnerar antalet mikrosekunder som har gått sedan programkoden lanserades. Funktionen återgår till noll efter 70 minuters programdrift.

Naturligtvis kommer detta att lägga till några rader kod till vår skiss, men det kommer utan tvekan att göra dig till en mer erfaren programmerare och öka potentialen för din Arduino. För att göra detta behöver du bara lära dig hur du använder millis-funktionen.

Det bör tydligt förstås att den enklaste fördröjningsfunktionen pausar exekveringen av hela Arduino-programmet, vilket gör att det inte kan utföra några uppgifter under denna tidsperiod. Istället för att pausa hela vårt program kan vi räkna hur lång tid som har gått innan åtgärden slutförs. Detta implementeras fint med hjälp av funktionen millis() . För att göra allt lätt att förstå kommer vi att överväga följande alternativ för att blinka en LED utan tidsfördröjning.

Början av detta program är densamma som alla andra vanliga Arduino-skisser.


Det här exemplet använder två Arduino digitala I/O-stift. Lysdioden är ansluten till stift 8, som är konfigurerad som OUTPUT. En knapp är ansluten till 9 via, som är konfigurerad som INPUT. När vi trycker på knappen är stift 9 inställt på HÖG, och programmet växlar stift 8 till HÖG, och tänder därmed lysdioden. Genom att släppa knappen återställs stift 9 till LÅG. Koden växlar sedan stift 8 till LÅG, vilket släcker indikatorlampan.

För att styra fem lysdioder kommer vi att använda olika manipulationer med Arduino-portar. För att göra detta kommer vi att skriva data direkt till Arduino-portarna, detta gör att vi kan ställa in värdena för lysdioderna med bara en funktion.

Arduino UNO har tre portar: B(digitala ingångar/utgångar från 8 till 13); C(analoga ingångar); D(digitala ingångar/utgångar 0 till 7)

Varje port kontrollerar tre register. Den första DDR anger om stiftet ska vara en ingång eller utgång. Med det andra PORT-registret kan du ställa in stiftet på HÖG eller LÅG. Med hjälp av den tredje kan du läsa information om Arduino-benens tillstånd, om de fungerar som en ingång.

För att driva kretsen kommer vi att använda port B. För att göra detta kommer vi att ställa in alla portstift som digitala utgångar. Port B har bara 6 ben. DDRB-registerbitarna måste ställas in på "1" , om stiftet kommer att användas som en utgång (OUTPUT), och in "0" , om vi planerar att använda stiftet som en ingång (INPUT). Portbitar är numrerade 0 till 7, men har inte alltid alla 8 stift

Låt oss säga: DDRB = B00111110;// ställ in port B stift 1 till 5 som utgång och 0 som ingång.

I vår körljuskrets använder vi fem utgångar: DDRB = B00011111; // ställ in port B-stiften 0 till 4 som utgångar.

För att skriva data till port B måste du använda PORTB-registret. Du kan tända den första lysdioden med kontrollkommandot: PORTB = B00000001;, första och fjärde lysdioden: PORTB = B00001001 och så vidare

Det finns två binära skiftoperatorer: vänster och höger. Den vänstra växlingsoperatören gör att alla databitar flyttas åt vänster, medan den högra växlingsoperatören flyttar dem åt höger.

Exempel:

varA = 1; // 00000001
varA = 1 varA = 1 varA = 1

Låt oss nu återgå till källkoden för vårt program. Vi måste ange två variabler: upp ner kommer att inkludera värdena för var man ska flytta - upp eller ner, och den andra cylon kommer att indikera vilka lysdioder som ska tändas.

Strukturellt har en sådan lysdiod en gemensam terminal och tre terminaler för varje färg. Nedan är ett diagram över anslutning av en RGB LED till ett Arduino-kort med en gemensam katod. Alla motstånd som används i anslutningskretsen måste ha samma värde från 220-270 Ohm.


För en anslutning med en gemensam katod kommer anslutningsschemat för en trefärgad LED att vara nästan detsamma, förutom att det gemensamma stiftet inte kommer att anslutas till jord (gnd på enheten), utan till +5 volts stiftet. Stift Röd, grön och blå är i båda fallen anslutna till styrenhetens digitala utgångar 9, 10 och 11.

Vi kommer att ansluta en extern LED till det nionde stiftet på Arduino UNO genom ett motstånd på 220 Ohm. Använd funktionen för att smidigt kontrollera ljusstyrkan för den senare analogWrite(). Den ger utmatning av en PWM-signal till styrenhetens ben. Dessutom laget pinMode() du behöver inte ringa. Därför att analogWrite(pin,värde) innehåller två parametrar: pin - pinnummer för utgång, värde - värde från 0 till 255.

Koda:
/*
Ett handledningsexempel för en nybörjare i Arduino som avslöjar funktionerna hos kommandot analogWrite() för att implementera fade-effekten av en LED
*/
int ljusstyrka = 0; // LED-ljusstyrka
int fadeAmount = 5; // ljusstyrka ändra steg
unsigned long currentTime;
osignerad lång loopTime;

Void setup() (
pinMode(9, OUTPUT); // ställ in stift 9 som utgång
aktuellTid = millis();
loopTime = aktuellTid;
}

Void loop() (
aktuellTid = millis();
if(currentTime >= (loopTime + 20))(
analogWrite(9, ljusstyrka); // ställ in värdet på stift 9

Ljusstyrka = ljusstyrka + fadeAmount; // lägg till ett steg för att ändra ljusstyrkan, vilket kommer att fastställas i nästa cykel

// om min. eller max. värden, då går vi i motsatt riktning (omvänd):
if (ljusstyrka == 0 || ljusstyrka == 255) (
fadeAmount = -fadeAmount ;
}
loopTime = aktuellTid;
}
}

Fungerande Arduino med en kodare

Kodaren är utformad för att omvandla rotationsvinkeln till en elektrisk signal. Från den får vi två signaler (A och B), som är motsatta i fas. I den här handledningen kommer vi att använda SparkFun COM-09117-kodaren, som har tolv positioner per varv (varje position är exakt 30°). Bilden nedan visar tydligt hur utgång A och B är beroende av varandra när pulsgivaren rör sig medurs eller moturs.

Om signal A går från en positiv nivå till noll läser vi värdet på utgång B. Om utgång B är i ett positivt tillstånd vid denna tidpunkt, så rör sig kodaren i medurs riktning, om B matar ut en nollnivå, då pulsgivaren rör sig i motsatt riktning. Genom att läsa båda utgångarna kan vi beräkna rotationsriktningen med hjälp av en mikrokontroller, och genom att räkna pulser från A-utgången på kodaren, rotationsvinkeln.

Vid behov kan du använda frekvensberäkningar för att bestämma hur snabbt kodaren roterar.

Med hjälp av en kodare i vårt handledningsexempel kommer vi att justera ljusstyrkan på lysdioden med PWM-utgången. För att läsa data från kodaren kommer vi att använda en metod baserad på mjukvarutimer, som vi redan har täckt.

Med tanke på det faktum att i snabbt fall, kan vi vrida kodarratten 180° på 1/10 av en sekund, då blir det 6 pulser på 1/10 av en sekund eller 60 pulser på en sekund.

I verkligheten går det inte att rotera snabbare. Eftersom vi behöver spåra alla halvcykler bör frekvensen vara cirka 120 Hertz. För att vara helt säker, låt oss ta 200 Hz.

Eftersom vi i det här fallet använder en mekanisk kodare är kontaktstuds möjlig, och den låga frekvensen filtrerar perfekt bort sådan studs.


Baserat på programmeringstimersignalerna är det nödvändigt att ständigt jämföra det aktuella värdet på kodarutgången A med det föregående värdet. Om tillståndet ändras från positivt till noll, så kontrollerar vi statusen för utgång B. Beroende på resultatet av statusundersökningen, ökar eller minskar vi LED-ljusstyrkevärdesräknaren. Programkoden med ett tidsintervall på cirka 5 ms (200 Hz) presenteras nedan:

Arduino nybörjarkod:
/*
** Encoder
** För att styra ljusstyrkan på lysdioden används en kodare från Sparkfun
*/

Int ljusstyrka = 120; // LED-ljusstyrka, börja på hälften
int fadeAmount = 10; // ljusstyrka ändra steg
unsigned long currentTime;
osignerad lång loopTime;
const int pin_A = 12; // stift 12
const int pin_B = 11; // stift 11
osignerad char encoder_A;
osignerad char encoder_B;
osignerad char encoder_A_prev=0;
void setup() (
// förklara pin 9 vara en utgång:
pinMode(9, OUTPUT); // ställ in stift 9 som utgång
pinMode(pin_A, INPUT);
pinMode(pin_B, INPUT);
aktuellTid = millis();
loopTime = aktuellTid;
}
void loop() (
aktuellTid = millis();
if(currentTime >= (loopTime + 5))( // kontrollera tillstånd var 5:e ms (frekvens 200 Hz)
encoder_A = digitalRead(pin_A); // läs tillståndet för utgång A från kodaren
encoder_B = digitalRead(pin_B); // kodarutgång B
if((!encoder_A) && (encoder_A_prev))( // om tillståndet ändras från positivt till noll
if(kodare_B) (
// utgång B är i positivt tillstånd, vilket betyder att rotationen är medurs
// öka ljusstyrkan på glöden, inte mer än 255
if(ljusstyrka + fadeAmount)
annan(
// utgång B är i nollläge, vilket betyder att rotationen är moturs
// minska ljusstyrkan, men inte under noll
if(ljusstyrka - fadeAmount >= 0) ljusstyrka -= fadeAmount;
}

}
encoder_A_prev = encoder_A; // spara värdet på A för nästa loop

AnalogWrite(9, ljusstyrka); // ställ in ljusstyrkan på det nionde stiftet

LoopTime = aktuellTid;
}
}

I det här nybörjarexemplet ska vi titta på att arbeta med en piezosändare för att generera ljud. För att göra detta, låt oss ta en piezoelektrisk sensor som låter oss generera ljudvågor i frekvensområdet 20 Hz - 20 kHz.

Detta är en amatörradiodesign där lysdioder är placerade över hela volymen. Med detta schema kan du generera olika ljus- och animationseffekter. Komplexa diagram kan till och med visa olika stora ord. Det här är med andra ord en elementär surroundmonitor

Servodrivningen är huvudelementet i designen av olika radiostyrda modeller, och dess kontroll med hjälp av en styrenhet är enkel och bekväm.


Styrprogrammet är enkelt och intuitivt. Det börjar med att ansluta en fil som innehåller alla nödvändiga kommandon för att styra servoenheten. Därefter skapar vi ett servoobjekt, till exempel servoMain. Nästa funktion är setup(), där vi anger att servot är anslutet till det nionde stiftet på styrenheten.

Koda:
/*
Arduino Servo
*/
#omfatta
Servo servoMain; // Servoobjekt

Ogiltig installation()
{
servoMain.attach(9); // Servo ansluten till stift 9
}

void loop()
{
servoMain.write(45); // Vrid servo åt vänster 45°
fördröjning(2000); // Vänta 2000 millisekunder (2 sekunder)
servoMain.write(0); // Vrid servo åt vänster med 0°
fördröjning(1000); // Paus 1 s.

fördröjning(1500); // Vänta 1,5 s.
servoMain.write(135); // Vrid servo åt höger 135°
fördröjning(3000); // Paus 3 s.
servoMain.write(180); // Vrid servo åt höger 180°
fördröjning(1000); // Vänta 1 s.
servoMain.write(90); // Vrid servo 90°. Centralt läge
fördröjning(5000); // Paus 5 s.
}

I huvudfunktionen slinga(), ger vi kommandon till servomotorn, med pauser mellan dem.

Arduino-räknarkrets på en 7-segmentsindikator

Detta enkla Arduino-projekt för nybörjare innebär att skapa en räknarkrets med hjälp av en vanlig 7-segments gemensam katoddisplay. Programkoden nedan låter dig börja räkna från 0 till 9 när du trycker på en knapp.

Sjusegmentsindikator - är en kombination av 8 lysdioder (den sista är ansvarig för punkten) med en gemensam katod, som kan slås på i önskad sekvens så att de skapar siffror. Det bör noteras att i denna krets, se figuren nedan, är stift 3 och 8 allokerade till katoden.


Till höger finns en överensstämmelsetabell mellan Arduino-stift och LED-indikatorstift.

Kod för detta projekt:

byte nummer = (
B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11100110
};
void setup() (
for(int i = 2; i pinMode(i, OUTPUT);
}
pinMode(9, INPUT);
}
int räknare = 0;
bool go_by_switch = sant;
int last_input_value = LÅG;
void loop() (
if(go_by_switch) (
int switch_input_value = digitalRead(9);
if(last_input_value == LOW && switch_input_value == HÖG) (

}
last_input_value = switch_input_value;
) annat (
fördröjning(500);
räknare = (räknare + 1) % 10;
}
skrivNumber(räknare);
}

Void writeNumber(int number) (
om (nummer 9) (
lämna tillbaka;
}
byte mask = siffror;
byte currentPinMask = B10000000;
for(int i = 2; i if(mask & currentPinMask) digitalWrite(i,HIGH);
else digitalWrite(i,LOW);
currentPinMask = currentPinMask >> 1;
}
}

Du kan avsevärt utöka potentialen för Arduino-kort med hjälp av ytterligare moduler som kan anslutas till PIN-stiften på nästan vilken enhet som helst. Tänk på de mest populära och intressanta expansionsmodulerna, eller sköldar som de också kallas.

Arduino är mycket populär bland alla designentusiaster. De som aldrig hört talas om det bör också introduceras för det.

Vad är Arduino?

Hur kan du kort beskriva Arduino? De bästa orden skulle vara: Arduino är ett verktyg som kan användas för att skapa olika elektroniska enheter. I grund och botten är detta en äkta maskinvaruplattform för allmänna ändamål. Den kan användas för att bygga enkla kretsar, och för genomförandet av ganska komplexa projekt.

Designern är baserad på dess hårdvara, som är ett input-output-kort. För att programmera kortet används språk som är baserade på C/C++. De kallas respektive Processing/Wiring. Från grupp C ärvde de extrem enkelhet, tack vare vilken de kan bemästras mycket snabbt av vilken person som helst, och att tillämpa kunskap i praktiken är inte ett ganska betydande problem. Så att du förstår hur lätt det är att arbeta, sägs det ofta att Arduino är för nybörjare som trollkarlar. Även barn kan förstå Arduino-brädor.

Vad kan du samla på den?

Tillämpningarna av Arduino är ganska olika; den kan användas både för de enklaste exemplen, som kommer att rekommenderas i slutet av artikeln, och för ganska komplexa mekanismer, inklusive manipulatorer, robotar eller produktionsmaskiner. Vissa hantverkare lyckas använda sådana system för att göra surfplattor, telefoner, övervaknings- och hemsäkerhetssystem, " smart hus"eller bara datorer. Arduino-projekt för nybörjare, som även de utan erfarenhet kan komma igång med, finns i slutet av artikeln. De kan till och med användas för att skapa primitiva virtuella verklighetssystem. Allt tack vare den ganska mångsidiga hårdvaran och kapaciteten som Arduino-programmering ger.

Var kan jag köpa komponenterna?

Komponenter tillverkade i Italien anses vara original. Men priset på sådana kit är inte lågt. Därför tillverkar ett antal företag eller till och med individer hantverksmetoder av Arduino-kompatibla enheter och komponenter, som skämtsamt kallas produktionskloner. När man köper sådana kloner kan man inte med säkerhet säga att de kommer att fungera, men viljan att spara pengar tar ut sin rätt.

Komponenter kan köpas antingen som en del av kit eller separat. Det finns till och med förberedda kit för montering av bilar, helikoptrar med olika typer av kontroller eller fartyg. Ett set som det på bilden ovan, tillverkat i Kina, kostar $49.

Mer om utrustningen

Arduino-brädet är enkelt AVR mikrokontroller, som flashades med en bootloader och har minsta nödvändiga USB-UART-port. Det finns andra viktiga komponenter, men inom ramen för artikeln vore det bättre att bara fokusera på dessa två komponenter.

Först, om mikrokontrollern, en mekanism byggd på en enda krets där det utvecklade programmet finns. Programmet kan påverkas genom att trycka på knappar, ta emot signaler från komponenterna i skapelsen (motstånd, transistorer, sensorer, etc.), etc. Dessutom kan sensorerna vara väldigt olika i sitt syfte: belysning, acceleration, temperatur, avstånd, tryck, hinder etc. Enkla delar kan användas som displayenheter, från lysdioder och diskanthögtalare till komplexa enheter, såsom grafiska displayer. Den kvalitet som beaktas är motorer, ventiler, reläer, servon, elektromagneter och många andra, som skulle ta väldigt, väldigt lång tid att lista. MK arbetar direkt med några av dessa listor med anslutningskablar. Vissa mekanismer kräver adaptrar. Men när du väl börjar designa blir det svårt för dig att slita dig ifrån dig. Låt oss nu prata om Arduino-programmering.

Lär dig mer om styrelseprogrammeringsprocessen

Ett program som redan är redo att köras på en mikrokontroller kallas firmware. Det kan finnas antingen ett projekt eller Arduino-projekt, så det skulle vara tillrådligt att lagra varje firmware i en separat mapp för att påskynda processen att hitta nödvändiga filer. Den blinkar på MK-kristallen med hjälp av specialiserade enheter: programmerare. Och här har Arduino en fördel - den behöver ingen programmerare. Allt är gjort för att programmera Arduino för nybörjare inte är svårt. Den skrivna koden kan laddas in i MK via en USB-kabel. Denna fördel uppnås inte av någon förbyggd programmerare, utan av speciell firmware - en bootloader. Bootloadern är ett speciellt program som startar direkt efter anslutning och lyssnar på om det finns några kommandon, om man ska flasha kristallen, om det finns Arduino-projekt eller inte. Det finns flera mycket attraktiva fördelar med att använda en bootloader:

  1. Använder endast en kommunikationskanal, vilket inte kräver extra tidskostnader. Så Arduino-projekt kräver inte att du ansluter många olika ledningar och det kommer att uppstå förvirring när du använder dem. En USB-kabel räcker för framgångsrik drift.
  2. Skydd mot krokiga händer. Det är ganska enkelt att föra mikrokontrollern till ett stentillstånd med hjälp av direkt firmware; du behöver inte arbeta hårt. När du arbetar med en bootloader kommer du inte att kunna komma åt potentiellt farliga inställningar (med hjälp av ett utvecklingsprogram förstås, annars kan allt gå sönder). Därför är Arduino för nybörjare inte bara avsedd ur synvinkeln att det är förståeligt och bekvämt, det kommer också att tillåta dig att undvika oönskade ekonomiska utgifter i samband med oerfarenhet hos den person som arbetar med dem.

Projekt för att komma igång

När du har skaffat ett kit, en lödkolv, kolofonium och lod bör du inte omedelbart skulptera mycket komplexa strukturer. Naturligtvis kan du göra dem, men chansen att lyckas i Arduino för nybörjare är ganska låg med komplexa projekt. För att träna och förbättra dina färdigheter kan du försöka implementera några enklare idéer som hjälper dig att förstå interaktionen och driften av Arduino. Som sådana första steg i arbetet med Arduino för nybörjare kan vi råda dig att överväga:

  1. Skapa en som fungerar tack vare Arduino.
  2. Ansluter en separat knapp till Arduino. I det här fallet kan du göra det så att knappen kan justera lysdiodens sken från punkt nr 1.
  3. Potentiometeranslutning.
  4. Servostyrning.
  5. Ansluta och arbeta med en trefärgad LED.
  6. Anslutning av det piezoelektriska elementet.
  7. Ansluta ett fotomotstånd.
  8. Anslutning av en rörelsesensor och signalerar om dess funktion.
  9. Anslutning av en fukt- eller temperatursensor.

Projekt för framtiden

Det är osannolikt att du är intresserad av Arduino för att kunna ansluta individuella lysdioder. Troligtvis lockas du av möjligheten att skapa din egen bil, eller flygande skivspelare. Dessa projekt är svåra att genomföra och kommer att kräva mycket tid och uthållighet, men när de är klara kommer du att få det du vill ha: värdefull Arduino-designupplevelse för nybörjare.

De flesta elektronikingenjörer föredrar att bygga sina projekt baserat på en mikrokontroller, vilket vi redan har skrivit om flera gånger. I följande artikel kommer vi att titta på enkla design av elektroniska enheter för nybörjare och de mest ovanliga projekten baserade på den nämnda mikrokontrollern.

Först är det värt att bekanta sig med funktionaliteten hos Arduino Uno-mikroprocessorn, som de flesta projekt bygger på, och överväga också skälen till att välja den här enheten. Nedan är faktorerna till varför en nybörjare bör välja Arduino uno:

  1. Ganska lättanvänt gränssnitt. Det är tydligt var kontakten är och var man ska fästa anslutningskablarna.
  2. Chipet på kortet ansluts direkt till USB-porten. Fördelen med den här installationen är att seriell kommunikation är ett mycket enkelt protokoll som har bestått tidens tand, och USB gör anslutning till moderna datorer mycket bekväm.
  3. Det är lätt att hitta den centrala delen av mikrokontrollern, som är ATmega328-chippet. Den har fler hårdvarufunktioner som timers, externa och interna avbrott, PWM-stift och flera vilolägen.
  4. Enheten är öppen källkod, så ett stort antal radioamatörer kan fixa buggar och problem i programvara. Detta gör det lättare att felsöka projekt.
  5. Klockhastigheten är 16 MHz, vilket är tillräckligt snabbt för de flesta applikationer och inte snabbar upp mikrokontrollern.
  6. Det är mycket bekvämt att styra strömmen inuti den och den har inbyggd spänningsregleringsfunktion. Mikrokontrollern kan också kopplas bort från USB-porten utan en extern strömkälla. Du kan ansluta en extern strömkälla upp till 12 V. Dessutom kommer mikroprocessorn själv att bestämma den erforderliga spänningen.
  7. Tillgänglighet för 13 digitala kontakter och 6 analoga kontakter. Dessa stift låter dig ansluta utrustning till Arduino uno-kortet från tredjepartsmedia. Stiften används som en nyckel för att utöka datorkraften hos Arduino uno i den verkliga världen. Anslut helt enkelt dina elektroniska enheter och sensorer till kontakterna som motsvarar vart och ett av dessa stift.
  8. En ICSP-header är tillgänglig för att kringgå USB-porten och gränssnittet direkt med Arduino som en seriell enhet. Denna port behövs för att återställa chippet om det är skadat och inte längre kan användas på din dator.
  9. Tillgänglighet på 32 KB flashminne för lagring av utvecklarkod.
  10. Lysdioden på kortet ansluts till digital stift 13 för att snabbt felsöka koden och förenkla processen.
  11. Slutligen har den en knapp för att återställa programmet på chippet.

Arduino skapades 2005 av två italienska ingenjörer, David Cuartilles och Massimo Banzi, med målet att låta eleverna lära sig hur man programmerar Arduino uno-mikrokontrollern och förbättrar sina elektronikfärdigheter och använder dem i den verkliga världen.

Arduino uno kan uppfatta miljö, tar emot input från olika sensorer och kan påverka miljön och andra ställdon. Mikrokontrollern är programmerad med hjälp av Arduinos programmeringsspråk (ledningsbaserat) och Arduinos utvecklingsmiljö (bearbetningsbaserad).

Låt oss nu gå direkt till projekt på Arduino uno.

Det enklaste projektet för nybörjare

Låt oss titta på några enkla och intressanta Arduino uno-projekt som även nybörjare i den här branschen kan göra - ett larmsystem.

Vi har redan gjort en lektion om detta projekt -. Kort om vad som görs och hur.

Detta projekt använder en rörelsesensor för att upptäcka rörelser och höga emissioner, och en visuell display som består av blinkande LED-lampor. Projektet i sig kommer att introducera dig till flera tillägg som ingår i Arduino Beginner Kit, såväl som nyanserna av att använda NewPing.

Det är ett Arduino-bibliotek som hjälper dig att kontrollera och testa din ekolodsavståndssensor. Även om det inte är helt komplett hemskydd, erbjuder det en idealisk lösning för att skydda små utrymmen som sovrum och badrum.

För detta projekt du kommer att behövas:

  1. Ultraljudspingsensor – HC-SR04.
  2. Piezo summer.
  3. LED Strip ljus.
  4. Bilbelysning med RGB-remsa. I denna Arduino-projekthandledning kommer du att lära dig hur du gör RGB-bilinteriörbelysning med en Arduino uno-bräda.

Många bilentusiaster gillar att lägga till extraljus eller uppgradera interiörlampor till lysdioder, men med Arduino-plattformen kan du njuta av mer kontroll och detaljer genom att köra kraftfulla lysdioder och ljuslister.

Du kan ändra ljusets färg med Android-enheter(telefon eller surfplatta) med applikationen " Bluetooth RGB-kontroller" (Dev Next Prototypes), som du kan ladda ner gratis från Android Play Lagra. Du kan också hitta en EasyEDA elektronisk krets eller beställa din egen Arduino-baserade krets på ett PCB.

Fantastiska Arduino Uno-projekt

De flesta proffs inom området för att utveckla elektroniska projekt på Arduino uno älskar att experimentera. Som ett resultat visas intressanta och överraskande enheter, som diskuteras nedan:

  1. Lägga till en IR-fjärrkontroll till ditt högtalarsystem. Inom hemelektronik, fjärrkontrollen fjärrkontrollär en komponent elektronisk anordning till exempel en TV, DVD-spelare eller annan hushållsapparat som används för att styra enheten trådlöst på kort avstånd. Fjärrkontrollen, först och främst, är bekväm för människor och låter dig arbeta med enheter som inte är lämpliga för direkt drift av kontrollerna.
  2. Larm. Realtidsklocka används för att få exakt tid. Här visar detta system datum och tid på LCD-displayen och vi kan ställa in larmet med hjälp av kontrollknapparna. Så snart larmtiden har kommit avger systemet en ljudsignal.
  3. Stegmotor. betyder en exakt motor som kan vridas ett steg i taget. En sådan enhet är gjord med hjälp av robotik, 3D-skrivare och CNC-maskiner.

    För detta projekt, skaffa den billigaste stegmotorn du kan hitta. Motorer finns tillgängliga online. Detta projekt använder en 28byj-48 stegräknare, som är lämplig för de flesta andra liknande projekt. Det är enkelt att ansluta till Arduino-kortet.
    - Du behöver 6 kablar med hona till hankontakter. Du behöver bara ansluta motorn till kortet och det är allt! Du kan också lägga till en liten bit tejp på det roterande huvudet för att se att det producerar en roterande rörelse.

  4. Ultraljudsavståndssensor. Detta projekt använder den populära , så att enheten kan undvika hinder och röra sig i olika riktningar.

När du är klar med ditt arbete kommer resultatet av dina handlingar att visas på skärmen. För att göra saker enkelt och tydligt rekommenderas det att använda en LCD med en I2C-omvandlare, så du behöver bara 4 kablar för att ansluta till Arduino-kortet.

Hjärnkurs ung programmeringskämpe Arduino eller var man ska börja bekanta sig med den här plattformen.

"Var ska man börja, Ers Majestät? - han frågade. "Börja från början," svarade kungen viktigt..." (C) Lewis carroll Alice i Underlandet

Steg 1: Låt oss börja från början eller hur det skulle vara trevligt om Arduino var gratis

Har läst massor av läroböcker på Arduino, efter att ha kommit på en massa användbara applikationer för denna sak i vardagen, från att automatisera matningen av fisk i ett akvarium till en robotsådd för en personlig gräsmatta, förstår vi att utan Arduino vi klarar oss inte!

Efter att ha köpt en kontroller förstår vi att vi har ett kort, men många idéer. Vad ska man göra? Begåvad leder oss till rätt beslut.

Behöver klona Arduino med dina egna händer!

Steg 2: Samla allt du behöver

För att påskynda processen kommer vi att använda utvecklingsstyrelsen. Som är känt från styrenhetens tekniska parametrar ATmega 328 IC, för att köra den i en minimal konfiguration behöver vi:

− styrenhet Arduino Duemilanove(kommer att användas som programmerare);
− mikrokrets ATmega 328 IC ;
− 16 MHz kvartsresonator;
− motstånd 100 Ohm 3 st.;
− kondensatorer 22pF 2 st.;
− Lysdioder 3 st med röda, gröna och gula lysande färger;
− 5 Volt spänningsstabilisator, till exempel 7805;
− valfritt 9 batteri med en kontakt för anslutning;
− USB-kabel;
− dator eller bärbar dator med ett mjukvarupaket installerat Arduino IDE;
− brödbräda och ledningar.

Steg 3: Starta layout



Vi placerar kontrollchippet på brödbrädet.

Steg 4: Installera spänningsstabilisatorn och strömkretsarna

Vi installerar spänningsstabilisatorn L7805 på kortet. Syftet med mikrokretsstiften är 1-ingång (7-20 volt), 2-hus, 3-utgång (5 volt). Med hjälp av monteringsledningar ansluter vi stabilisatorn till strömkällan och styrenheten, som visas på bilderna.

Steg 5: Anslut ström till styrenheten

I enlighet med numreringen av kontrollerstiften ansluter vi den med monteringstrådar till utgången på spänningsstabilisatorn och den gemensamma ledningen.

Tips: Installationsledningarna har olika isoleringsfärger, försök att använda samma färgkablar för varje krets.

Steg 6: Anslut kvartsresonatorn



Vi placerar en resonator och kondensatorer för den oscillerande kretsen på kortet.

Installationsproceduren är som följer:

− vi placerar en 22pF kondensator mellan jord och styrenhetens 9:e ben;
− vi placerar en 22pF kondensator mellan jord och styrenhetens 10:e ben;
− vi slår på resonatorn mellan ben 9 och 10 på styrenheten;
− vi ansluter ett 10 kOm motstånd mellan 1 ben på styrenheten och +5V (vi förbigår "Återställ"-signalen).

Steg 7: Lägg till Controller Status Indicators

Vi ansluter lysdioderna i serie med 100 Ohm motstånd, mellan jord och vår programmerare.

Steg 7: Anslut brödbrädet till programmeringskortet


Anslutning av den sammansatta brödbrädan till brädan Arduino Duemilanove på följande sätt:

− anslut den gula lysdiodens utgång till 9 utgång på programmerarens kontakt, kommer dess pulsering att visa oss att programmeraren fungerar;
− anslut den röda LED-utgången till 8 utgång på programmerarens kontakt, det signalerar möjliga fel;
− anslut den gröna lysdiodens utgång till 7 stiftet på programmerarens kontakt, dess glöd indikerar datautbyte mellan programmeraren och mikrokontrollern.

Vi ansluter våra kort till varandra med de återstående ledningarna som visas i figuren, och glömmer inte att ansluta strömkablarna + 5 V Och ram mellan dem.

Steg 8: Konvertera Arduino Duemilanove-kortet till en programmerare

För att ladda in i mikrokontrollern ATmega 328IC bootloader måste förvandlas till vår Arduino Duemilanove in i programmeraren. Vi ansluter vår montering till datorn med hjälp av USB kabel. Öppna programmeringsmiljön AndurinoIDE, välj skissen (programmet) i den AndurinoISP och ladda upp den till Arduino Duemilanove. Genom att den gula lysdioden blinkar är vi övertygade om att skissen har laddats in i vår programmerare.

Steg 9: Ladda starthanteraren

I AndurinoISP (menyalternativ « Tools") välj vilken typ av styrenhet vi behöver ( ATmega 328 IC). Vi ger kommandot för att ladda starthanteraren "Bränn bootloader". Vi övervakar AndurinoIDE-meddelanden efter att starthanteraren har laddat klart " Klar med att bränna bootloader" vår mikrokontroller är redo att spela in en skiss av projektet för vår nya hemgjorda produkter.

Steg 10: Möjliga problem och lösningar






Möjliga fel vid inspelning av en bootloader och hur man eliminerar dem visas i debugger-skärmdumparna ovan.

Den här artikeln gör inte anspråk på att vara en fullständig beskrivning av programmering. "från början" mikrokontroller, men visar hur du med en minimal uppsättning element kan börja göra "din egen" Andurino.


Topp