kategorier: Utvalda artiklar » Praktisk elektronik
Antal visningar: 67360
Kommentarer till artikeln: 7
Ansluta och programmera Arduino för nybörjare
Verkar studiet av mikrokontroller komplicerade och obegripliga? Innan Arudino uppträdde var det verkligen inte lätt och krävde en viss uppsättning programmerare och annan utrustning.
Vad är en Arduino?
Detta är en typ av elektronisk konstruktör. Det ursprungliga målet med projektet är att låta människor enkelt lära sig att programmera elektroniska apparater, samtidigt som man lägger minimal tid åt den elektroniska delen.
Montering av de mest komplicerade kretsarna och anslutningen av brädorna kan utföras utan lödkolv och med hjälp av hoppare med löstagbara anslutningar "far" och "mor". På detta sätt kan både bilagor och expansionskort anslutas, som i lexikonet för arduinisterna helt enkelt kallas ”Sköldar”.

Vad är det första Arduino-brädet som köper en nybörjare?
Basen och mest populära brädet beaktas Arduino uno. Denna avgift liknar ett kreditkort. Ganska stort. De flesta sköldar som är till försäljning är perfekta för henne. Det finns uttag på kortet för anslutning av externa enheter.

I inhemska butiker för 2017 är priset cirka 4-5 dollar. På moderna modeller är Atmega328 hennes hjärta.
Arduino-kortets bild- och funktionsavkodning av varje stift, Arduino UNO pinout
Mikrokontrollern på detta kort är ett långt chip i DIP28-paketet, vilket innebär att den har 28 ben.
Det näst mest populära brädet kostar nästan två gånger billigare än det förra - 2-3 dollar. Det här är styrelsen Arduino nano. Faktiska styrelser är byggda av samma Atmega328, de är funktionellt lika med UNO, det finns skillnader i storlekar och en matchande lösning med USB, mer om detta senare. En annan skillnad är att en plugg i form av nålar är anordnad för anslutning av enheter till kretskortet.

Antalet stift (ben) på detta bräde är detsamma, men du kan observera att mikrokontrollern är tillverkad i ett mer kompakt TQFP32-paket, ADC6 och ADC7 läggs till i fallet, de andra två "extra" benen duplicerar kraftbussen. Dess dimensioner är ganska kompakta - ungefär storleken på en tumme på din hand.
Det tredje mest populära styrelsen är Arduino Pro Mini, den har inte en USB-port för anslutning till en dator, jag ska berätta för dig hur du ska kommunicera lite senare.

Jämförelse mellan Arduino Nano och Pro Mini
Detta är den minsta styrelsen av alla övervägda, annars liknar den de två föregående, och Atmega328 är fortfarande dess hjärta. Vi kommer inte att överväga andra styrelser, eftersom det här är en artikel för nybörjare och jämförelsen av brädor är ämnet för en separat artikel.
Arduino Pro Mini-urklipp, i den övre delen, USB-UART-anslutningsdiagrammet, stift “GRN” - är anslutet till återställningskretsen för mikrokontrollern, det kan kallas annorlunda, som du måste ta reda på senare.
resultat:
Om UNO är praktiskt för prototyper, är Nano och Pro Mini praktiska för de slutliga versionerna av ditt projekt, eftersom de tar lite plats.

Hur ansluter du Arduino till en dator?
Arduino Uno och Nano ansluter till en dator via USB. Samtidigt finns det inget hårdvarosupport för USB-porten, en kretslösning för nivåkonvertering används här, vanligtvis kallad USB-till-seriell eller USB-UART (rs-232). Samtidigt blinkas en speciell Arduino-startladdare in i mikrokontrollern, vilket tillåter blinkning på dessa bussar.
I Arduino Uno implementeras denna ligatur på en mikrokontroller med USB-stöd - ATmega16U2 (AT16U2). Det visar sig att den ytterligare mikrokontrollern på kortet behövs för att blinka huvudmikrokontrollern.
I Arduino Nano implementeras detta av FT232R-chipet eller dets analoga CH340. Detta är inte en mikrokontroller - det är en nivåomvandlare, detta faktum gör det enkelt att montera Arduino Nano från början med dina egna händer.
Normalt installeras drivrutiner automatiskt när Arduino-kortet är anslutet. Men när jag köpte en kinesisk kopia av Arduino Nano kände enheten igen, men den fungerade inte, en rund klistermärke med data på släppdatumet limmades på omvandlaren, jag vet inte om det gjordes med avsikt, men efter att ha avskalat det såg jag märket CH340.
Innan dess hade jag inte stött på detta och tänkte att alla USB-UART-omvandlare var monterade på FT232, jag var tvungen att ladda ner drivrutiner, de är väldigt enkla att hitta på begäran av "Arduino ch340 driver". Efter en enkel installation - det fungerade!
Genom samma USB-port kan mikrokontrollern också drivas, dvs. om du ansluter den till adaptern från en mobiltelefon fungerar ditt system.
Vad ska jag göra om mitt kort inte har USB?
Arduino Pro Mini är mindre. Detta uppnåddes genom att ta bort USB-kontakten för firmware och samma USB-UART-omvandlare. Därför måste det köpas separat. Den enklaste omvandlaren på CH340 (den billigaste), CPL2102 och FT232R, till försäljning kostar från $ 1.
När du köper, var uppmärksam på vilken spänning denna adapter är designad för. Pro mini finns i versionerna 3.3 och 5 V, en bygel finns ofta på omvandlarna för att växla matningsspänningen.

När du blinkar Pro Mini, strax innan den startar, måste du klicka på RESET, men i omvandlare med DTR behöver du inte göra detta, anslutningsdiagrammet i figuren nedan.

De förenas av specialterminaler "Mama-Mama" (kvinnlig-kvinnlig).

Egentligen kan alla anslutningar göras med hjälp av sådana terminaler (Dupont), de är båda på två sidor med uttag och med pluggar, och på ena sidan av uttaget och på den andra kontakten.

Hur skriver man program för Arduino?
För att arbeta med skisser (namnet på firmware är på arduino-språket) finns det en speciell integrerad miljö för att utveckla Arduino IDE, du kan ladda ner den gratis från den officiella webbplatsen eller från någon tematisk resurs, vanligtvis finns det inga problem med att installera den.
Så ser programgränssnittet ut. Du kan skriva program på det förenklade C AVR-språket som är speciellt utvecklat för arduino, i själva verket är det en uppsättning bibliotek som heter Wiring samt i ren C AVR. Att använda den underlättar koden och påskyndar sitt arbete.
Längst upp i fönstret finns en bekant meny där du kan öppna filen, inställningar, välja brädet du arbetar med (Uno, Nano och många, många andra) och också öppna projekt med färdiga kodexempel. Nedan finns en uppsättning knappar för att arbeta med firmware, knapparna du ser i figuren nedan.

Längst ner i fönstret finns ett område för att visa information om projektet, status för koden, firmware och förekomsten av fel.
Grunderna för programmering av Arduino IDE
I början av koden måste du deklarera variabler och ansluta ytterligare bibliotek, om de finns, görs detta enligt följande:
# inkludera biblioteka.h; // anslut biblioteket med namnet ”Biblioteka.h”
# definiera peremennaya 1234; // Förklara en variabel med ett värde av 1234
Kommandot Definiera gör det möjligt för kompilatorn att välja variabeltyp, men du kan ställa in den manuellt, till exempel ett heltal int, eller en flytande punktflöde.
int led = 13; // skapade variabeln "led" och tilldelade det värdet "13"
Programmet kan bestämma stiftets tillstånd som 1 eller 0. 1 är en logisk enhet, om stift 13 är 1, kommer spänningen på dess fysiska ben att vara lika med matningsspänningen för mikrokontrollern (för arduino UNO och Nano - 5 V)
Den digitala signalen spelas in med hjälp av kommandot digitalWrite (stift, värde), till exempel:
digitalWrite (led, hög); // skriv enheten till stift 13 (vi meddelade den ovan) logg. Unit.
Som ni förstår är åtkomsten till portarna genom att numrera på kortet, motsvarande siffra. Här är ett exempel som liknar den föregående koden:
digitalWrite (13, hög); // stift stift 13 till en
Ofta kallas den eftertraktade tidsfördröjningsfunktionen med kommandot fördröjning (), vars värde ställs in i millisekunder, mikrosekunder uppnås med
fördröjning Mikrosekunder () Försening (1000); // mikrokontroller väntar 1000 ms (1 sekund)
Portinställningarna för ingång och utgång ställs in i funktionen void setup {} med kommandot:
ogiltig installation () {
pinMode (NOMERPORTA, OUTPUT / INPUT); // argument - variabelnamn eller portnummer, input eller output att välja mellan
}
Void loop {}
Förstå det första Blink-programmet
Som ett slags "Hej, värld" för mikrokontroller finns det ett LED-blinkande program, låt oss analysera dess kod:
I början, med pinMode-kommandot, sa vi mikrokontrollern att tilldela en port med en LED till utgången.Du har redan lagt märke till att koden inte deklarerar variabeln “LED_BUILTIN”, faktum är att i Uno, Nano och andra kort från fabriken är den inbyggda LED-anslutningen ansluten till stift 13 och den är lödd till kortet. Det kan användas av dig för indikering i dina projekt eller för en enklare kontroll av dina blinkande program.
Därefter ställer vi in den utgång som lysdioden är lödad till enhet (5 V), nästa rad gör att MK väntar 1 sekund och ställer sedan LED_BUILTIN-stiftet till noll, väntar en sekund och programmet upprepas i en cirkel, så när LED_BUILTIN är 1 - LED ( och all annan belastning ansluten till porten) är påslagen när den vid 0 är avstängd.
Fungerar allt och allt är klart? Gå sedan vidare!
Vi läser värdet från den analoga porten och använder lästa data
Atmega328 AVR-mikrostyrenhet har en inbyggd 10-bitars analog-till-digital-omvandlare. 10-bitars ADC låter dig läsa spänningsvärdet från 0 till 5 volt, i steg om 1/1024 av signalens hela amplitudområde (5 V).
För att göra det tydligare, tänk på situationen, anta att spänningsvärdet vid den analoga ingången är 2,5 V, då kommer mikrokontrollern att läsa värdet från stift "512" om spänningen är 0 - "0", och om 5 V - (1023). 1023 - eftersom räkningen går från 0, dvs 0, 1, 2, 3, etc. upp till 1023 - totalt 1024 värden.
Så här ser det ut i koden genom att använda standardskissen “analogInput” som exempel
int sensorPin = A0;
int ledPin = 13;
int-sensorVärde = 0;
ogiltig installation () {
pinMode (ledPin, OUTPUT);
}
void loop () {
sensorValue = analogRead (sensorPin);
digitalWrite (ledPin, HIGH);
fördröjning (sensorValue);
digitalWrite (ledPin, LOW);
fördröjning (sensorValue);
}

Kopplingsschemat för potentiometern till Arduino, analogt, den centrala utgången som du kan ansluta till vilken analog ingång som helst.
Förklara variabler:
-
Ledpin - tilldela oberoende en stift med en inbyggd LED till utgången och ge ett individuellt namn;
-
sensorPin - analog ingång, ställs in enligt markeringen på kortet: A0, A1, A2, etc.;
-
sensorValue - en variabel för att lagra ett heltal läsvärde och arbeta ytterligare med det.
Koden fungerar så här: sensorValue spara det analoga värdet som läses med sensorPin (analogRead-kommando). - här slutar arbetet med den analoga signalen, då är allt som i föregående exempel.
Vi skriver enheten i ledPin, lysdioden tänds och väntar en tid som är lika med värdet på sensorValue, dvs från 0 till 1023 millisekunder. Stäng av lysdioden och vänta igen under denna tidsperiod, varefter koden upprepas.
Med hjälp av potentiometern ställer vi sålunda in blinkande frekvens för lysdioden.
Kartfunktion för Arudino
Inte alla funktioner för ställdon (jag vet inte) stöder “1023” som ett argument, till exempel är servo begränsad av rotationsvinkeln, det vill säga med en halv varv (180 grader) (halv varv) för servomotorn, det maximala argumentet för funktionen är ”180”
Nu om syntaxen: karta (värdet vi översätter är det minsta ingångsvärdet, det maximala ingångsvärdet, det minsta utgångsvärdet, det maximala utgångsvärdet).
I kod ser det ut så här:
(karta (analogRead (pot), 0, 1023, 0, 180));
Vi läser värdet från potentiometern (analogRead (pot)) från 0 till 1023, och vid utgången får vi siffror från 0 till 180
Värde Kartvärden:
-
0=0;
-
1023=180;
I praktiken tillämpar vi detta på arbetet med samma servokod, titta på koden med Arduino IDE, om du noggrant läser de föregående avsnitten krävs det ingen förklaring.

Och anslutningsdiagrammet.

Slutsatser Arduino är ett mycket bekvämt verktyg för att lära sig att arbeta med mikrokontroller. Och om du använder ren C AVR, eller som det ibland kallas "Pure C", kommer du att minska kodvikten avsevärt och passa mer i mikrokontrollerns minne, som ett resultat kommer du att få ett utmärkt fabrikstillverkat felsökningskort med USB-firmware.

Författarens yttrande:
Jag gillar arduino. Det är synd att många erfarna mikrokontrollerprogrammerare kritiserar det orimligt, att det är för förenklat. I princip är det bara språket som förenklas, men ingen tvingar dig att använda det, plus att du kan blixta mikrokontrollern genom ICSP-anslutningen och fylla i den kod du vill ha utan några startladdare som du inte behöver.
För dig som vill spela med elektronik, som en avancerad konstruktör, är den perfekt, men för erfarna programmerare kommer ett bräde som inte kräver montering också att vara användbart!
För mer information om Arduino och funktionerna i dess användning i olika scheman, se e-boken -Arduino för dummies. Illustrerad praktisk guide.
Se även på elektrohomepro.com
: