Come configurare smartphone e PC. Portale informativo
  • casa
  • Interessante
  • Programma per scrivere schizzi su Arduino. Arduino: esempi di cosa si può fare

Programma per scrivere schizzi su Arduino. Arduino: esempi di cosa si può fare

Buona giornata, Habr. Sto lanciando una serie di articoli che ti aiuteranno a familiarizzare con Arduino. Ma questo non significa che se non sei nuovo in questo business, non troverai nulla di interessante per te.

introduzione

Sarebbe una buona idea iniziare familiarizzando con Arduino. Arduino – hardware e software per sistemi di automazione degli edifici e robotica. Il vantaggio principale è che la piattaforma è rivolta ad utenti non professionali. Cioè, chiunque può creare il proprio robot, indipendentemente dalle conoscenze di programmazione e dalle proprie capacità.

Inizio

La creazione di un progetto su Arduino si compone di 3 fasi principali: scrittura del codice, prototipazione (breadboarding) e firmware. Per scrivere il codice e poi eseguire il flashing della scheda, abbiamo bisogno di un ambiente di sviluppo. In effetti, ce ne sono parecchi, ma programmeremo nell'ambiente originale: l'IDE Arduino. Scriveremo il codice stesso in C++, adattato per Arduino. Puoi scaricarlo sul sito ufficiale. Uno sketch è un programma scritto su Arduino. Diamo un'occhiata alla struttura del codice:


main())( void setup())() void loop())( ) )

È importante notare che il processore Arduino crea la funzione main(), richiesta in C++. E il risultato di ciò che vede il programmatore è:


void setup() ( ) void loop() ( )

Diamo un'occhiata alle due funzioni richieste. La funzione setup() viene chiamata solo una volta all'avvio del microcontrollore. È lei che imposta tutte le impostazioni di base. La funzione loop() è ciclica. Viene chiamato in un ciclo infinito durante l'intero tempo di funzionamento del microcontrollore.

Primo programma

Per comprendere meglio il principio di funzionamento della piattaforma, scriviamo il primo programma. Eseguiremo questo programma più semplice (Blink) in due versioni. L'unica differenza tra loro è l'assemblaggio.


Led intero = 13; // dichiara la variabile Led sul pin 13 (uscita) void setup() ( pinMode(Led, OUTPUT); // definisce la variabile ) void loop() ( digitalWrite(Led, HIGH); // applica la tensione al ritardo del pin 13 (1000 ); // attende 1 secondo digitalWrite(Led, LOW); // non applica tensione al pin 13 delay(1000); // attende 1 secondo)

Il principio di funzionamento di questo programma è abbastanza semplice: il LED si accende per 1 secondo e si spegne per 1 secondo. Per la prima opzione, non è necessario assemblare un layout. Poiché la piattaforma Arduino ha un LED integrato collegato al pin 13.

Firmware dell'Arduino

Per caricare uno schizzo su Arduino, dobbiamo prima semplicemente salvarlo. Successivamente, per evitare problemi durante il caricamento, è necessario controllare le impostazioni del programmatore. Per fare ciò, seleziona la scheda “Strumenti” nel pannello superiore. Nella sezione "Pagamento", seleziona il tuo pagamento. Potrebbe essere Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo o altri. Sempre nella sezione “Porta” devi selezionare la porta di connessione (la porta a cui hai collegato la tua piattaforma). Dopo questi passaggi, puoi caricare lo schizzo. Per fare ciò, fai clic sulla freccia o seleziona "Download" nella scheda "Schizzo" (puoi anche utilizzare la scorciatoia da tastiera "Ctrl + U"). Il firmware della scheda è stato completato con successo.

Prototipazione/impaginazione

Per assemblare la breadboard abbiamo bisogno dei seguenti elementi: LED, resistenza, cablaggio (jumper), breadboard. Per non bruciare nulla e affinché tutto funzioni correttamente, è necessario occuparsi del LED. Ha due "gambe". Breve è un meno, lungo è un vantaggio. Collegheremo la massa (GND) e una resistenza a quello corto (in modo da ridurre la corrente fornita al LED per non bruciarlo), e forniremo alimentazione a quello lungo (collegarlo al pin 13). Dopo esserti connesso, carica lo schizzo sulla bacheca se non lo hai già fatto in precedenza. Il codice rimane lo stesso.


Questa è la fine della prima parte. Grazie per l'attenzione.

Nella vita di uno sviluppatore Arduino, prima o poi arriva il momento in cui l’ambiente di sviluppo standard diventa affollato. Se gli schizzi non hanno più memoria sufficiente, avete bisogno di tempo reale e lavorate con interruzioni, o volete semplicemente essere più vicini all'hardware, allora è il momento di passare a C. Gli ingegneri elettronici esperti aggrotteranno le sopracciglia con disprezzo alla menzione di Arduino e invieranno il principiante in un negozio di radio per un saldatore. Questo potrebbe non essere il peggior consiglio, ma non lo seguiremo per ora. Se scartiamo l'IDE di Arduino e il linguaggio di cablaggio/elaborazione, ci ritroviamo con un'ottima scheda di debug, già dotata di tutto il necessario per il funzionamento del microcontrollore. E, cosa più importante, un bootloader è già cablato nella memoria del controller, consentendoti di caricare il firmware senza utilizzare un programmatore.

Per programmare in C, abbiamo bisogno di AVR GCC Toolchain.

Avremo bisogno anche dell'IDE Arduino installato, perché... contiene l'utilità avrdude, necessaria per scaricare il firmware sul controller. CrossPack contiene anche avrdude, ma la versione fornita con esso non funziona con Arduino.

Dopo aver installato tutto, creiamo il nostro primo progetto. Per cominciare, scriviamo Makefile. Ci consentirà di evitare di inserire manualmente lunghi comandi ogni volta che compiliamo e carichiamo il firmware.

#Controller installato sulla scheda. Potrebbe essere diverso, ad esempio atmega328 DEVICE = atmega168 #Frequenza clock 16 MHz CLOCK = 16000000 #Avrdude comando di avvio. Deve essere copiato dall'IDE di Arduino. AVRDUDE = /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -carduino -P/dev/tty.usbserial-A600dAAQ -b19200 -D -p atmega168 OBJECTS = main.o COMPILE = avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DISPOSITIVO) all: main .hex .c.o: $(COMPILE) -c $< -o $@ .S.o: $(COMPILE) -x assembler-with-cpp -c $< -o $@ .c.s: $(COMPILE) -S $< -o $@ flash: all $(AVRDUDE) -U flash:w:main.hex:i clean: rm -f main.hex main.elf $(OBJECTS) main.elf: $(OBJECTS) $(COMPILE) -o main.elf $(OBJECTS) main.hex: main.elf rm -f main.hex avr-objcopy -j .text -j .data -O ihex main.elf main.hex avr-size --format=avr --mcu=$(DEVICE) main.elf

In questo file dobbiamo inserire il nostro comando per avviare avrdude. Avrà un aspetto diverso su sistemi diversi. Per scoprire la tua opzione, avvia l'IDE Arduino e seleziona la casella "Mostra output dettagliato durante il caricamento" nelle impostazioni.

Ora carichiamo qualsiasi schizzo in Arduino e guardiamo i messaggi visualizzati nella parte inferiore della finestra. Troviamo lì la chiamata avrdude, copiamo tutto tranne il parametro -Uflash e lo incolliamo nel Makefile dopo “AVRDUDE = “.


Una breve nota: tutti i rientri nel Makefile vengono eseguiti con caratteri di tabulazione (tasto Tab). Se il tuo editor di testo sostituisce questi caratteri con spazi, il comando make rifiuterà di compilare il progetto.

Ora creiamo un file principale.c- il testo vero e proprio del nostro programma, in cui tradizionalmente facciamo lampeggiare il LED.

#includere #includere #define LED_PIN 5 int main() ( DDRB |= 1<< LED_PIN; while(1) { PORTB |= 1 << LED_PIN; _delay_ms(1000); PORTB &= ~(1 << LED_PIN); _delay_ms(1000); } return 0; }

Il nostro progetto è pronto. Apriamo la console nella directory del nostro progetto e inseriamo il comando "make":


Come puoi vedere, la dimensione del firmware risultante è di soli 180 byte. Uno schizzo simile di Arduino occupa 1116 byte nella memoria del controller.

Ora torniamo alla console e inseriamo "make flash" per caricare il file compilato nel controller:


Se il download è stato completato senza errori, il LED collegato al pin 13 della scheda lampeggerà allegramente. A volte avrdude non riesce a trovare la scheda o cade a causa di un timeout: in questo caso, torcere il cavo USB può aiutare. Inoltre, per evitare conflitti di accesso alla scheda, non dimenticare di chiudere l'IDE di Arduino prima del comando “make flash”.

Forse molte delle cose descritte in questo articolo sembreranno ovvie agli sviluppatori esperti. Ho cercato di descrivere il processo in un linguaggio il più comprensibile possibile per un utente Arduino alle prime armi e di raccogliere in un unico posto le informazioni che sono riuscito a ottenere da varie fonti e verificare empiricamente. Forse questo articolo farà risparmiare a qualcuno un paio d'ore di tempo.

Buona fortuna nel padroneggiare i microcontrollori!

Arduino è una piccola scheda utilizzata per creare vari dispositivi, gadget interessanti e persino piattaforme informatiche. Questa scheda è chiamata microcontrollore, che è open source e può essere utilizzata con molte applicazioni.

Questa è l'opzione più semplice ed economica per principianti, dilettanti e professionisti. Il processo di programmazione avviene nel linguaggio Processing/Wiring, che si apprende velocemente e facilmente e si basa sul linguaggio C++, e grazie a questo è molto semplice da eseguire. Diamo un'occhiata a cos'è Arduino, come è utile per i principianti, le sue capacità e caratteristiche.

Arduino è una piattaforma o scheda informatica che fungerà da cervello per i tuoi nuovi dispositivi o gadget. Sulla base di esso, puoi creare sia dispositivi con circuiti semplici che progetti complessi e ad alta intensità di manodopera, ad esempio robot o droni.

La base del progettista è la scheda input-output (hardware), nonché la parte software. Il software di progettazione basato su Arduino è rappresentato da un ambiente di sviluppo integrato.

Esternamente, l'ambiente stesso si presenta così:

Il software Arduino è progettato in modo tale che anche un utente inesperto senza conoscenze di programmazione possa gestirlo. Un ulteriore fattore di successo nell'utilizzo del microcontrollore è stata la capacità di lavorare con una breadboard, quando le parti necessarie (resistori, diodi, transistor, ecc.) sono collegate al controller senza necessità di saldatura.

La maggior parte delle schede Arduino sono collegate tramite un cavo USB. Tale connessione consente di fornire alimentazione alla scheda e caricare schizzi, ad es. mini-programmi. Anche il processo di programmazione è estremamente semplice. Innanzitutto l'utente utilizza l'editor del codice IDE per creare il programma richiesto, quindi con un clic lo carica in Arduino.

Come acquistare Arduino?

La scheda e molte parti di Arduino sono realizzate in Italia Italia, pertanto, i componenti originali sono piuttosto costosi. Ma ci sono componenti separati del designer o set, i cosiddetti kit, che vengono prodotti secondo l'analogia italiana, ma a prezzi più convenienti.

Puoi acquistare un analogo sul mercato interno o, ad esempio, ordinarlo dalla Cina. Molte persone conoscono, ad esempio, il sito web di AliExpress. Ma per chi inizia a conoscere Arduino, è meglio ordinare la prima scheda da un negozio online russo. Nel tempo, puoi passare all'acquisto di circuiti stampati e componenti in Cina. I tempi di consegna da questo paese saranno compresi tra due settimane e un mese e, ad esempio, il costo di un kit di grandi dimensioni non sarà più 60-70 dollari.

I kit standard solitamente includono le seguenti parti:

  • tagliere per il pane;
  • LED;
  • resistori;
  • batterie da 9 V;
  • regolatori di tensione;
  • pulsanti;
  • ponticelli;
  • tastiera a matrice;
  • schede di espansione;
  • condensatori.

Hai bisogno di conoscere la programmazione?

I primi passi per lavorare con la scheda Arduino iniziano con la programmazione della scheda. Un programma già pronto per funzionare con una scheda si chiama schizzo. Non è necessario preoccuparsi di non conoscere la programmazione. Il processo di creazione dei programmi è abbastanza semplice e ci sono molti esempi di schizzi su Internet, poiché la comunità Arduino è molto numerosa.

Dopo che il programma è stato compilato, viene caricato (flash) sulla scheda. In questo caso, Arduino ha un vantaggio innegabile: nella maggior parte dei casi per la programmazione viene utilizzato un cavo USB. Subito dopo il caricamento, il programma è pronto per eseguire vari comandi.

I principianti con Arduino devono conoscere due funzioni chiave:

  • impostare()– utilizzato una volta all'accensione della scheda, utilizzato per inizializzare le impostazioni;
  • ciclo continuo()– utilizzato costantemente, è la fase finale del setup.

Esempio di notazione di funzione impostare():

Void setup() ( Serial.begin(9600); // Apre una connessione seriale pinMode(9, INPUT); // Assegna il pin 9 come input pinMode(13, OUTPUT); // Assegna il pin 13 come output )

Funzione impostare() viene eseguito all'inizio e solo 1 volta immediatamente dopo l'accensione o il riavvio del dispositivo.

Funzione ciclo continuo() eseguito dopo la funzione setup(). Loop è tradotto come loop o ciclo. La funzione verrà eseguita ancora e ancora. Quindi il microcontrollore ATmega328 (la maggior parte delle schede Arduino lo contiene) eseguirà la funzione di loop circa 10.000 volte al secondo.

Incontrerai anche funzionalità aggiuntive:

  • pinMode– modalità di input e output delle informazioni;
  • analogicoLeggi– permette di leggere la tensione analogica emergente al pin;
  • analogWrite– registrazione della tensione analogica sul pin di uscita;
  • digitalLeggi– permette di leggere il valore di un'uscita digitale;
  • digitalWrite– permette di impostare il valore dell'uscita digitale a livello basso o alto;
  • Stampa.seriale– traduce i dati del progetto in testo di facile lettura.

Oltre a questo, i principianti di Arduino apprezzeranno il fatto che ci siano molte librerie per le schede, ovvero raccolte di funzioni che consentono di controllare la scheda o moduli aggiuntivi. I più popolari includono:

  • leggere e scrivere nello spazio di archiviazione,
  • Connessione internet,
  • lettura di schede SD,
  • controllo del motore passo-passo,
  • resa del testo
  • eccetera.

Come configurare Arduino?

Uno dei principali vantaggi del designer è la sua sicurezza per quanto riguarda le impostazioni dell'utente. Le impostazioni chiave potenzialmente dannose per Arduino sono protette e non saranno accessibili.

Pertanto, anche un programmatore inesperto può tranquillamente sperimentare e modificare varie opzioni per ottenere il risultato desiderato. Ma per ogni evenienza, ti consigliamo vivamente di leggere tre materiali importanti su come non danneggiare la scheda:

Il classico algoritmo di configurazione del programma Arduino si presenta così:

  • Installazione IDE, scaricabile di seguito o dal sito del produttore;
  • installazione del software sul PC che stai utilizzando;
  • avvia il file Arduino;
  • inserire il programma sviluppato nella finestra del codice e trasferirlo sulla scheda (tramite cavo USB);
  • nella sezione IDE è necessario selezionare il tipo di costruttore che verrà utilizzato. Questo può essere fatto nella finestra “strumenti” - “schede”;
  • controllare il codice e fare clic su “Avanti”, dopodiché inizierà il download su Arduino.
Versione finestre Mac OS Linux
1.6.5 Cerniera lampo
Installatore
Installatore 32 bit
64 bit
1.8.2 Cerniera lampo
Installatore
Installatore 32 bit
64 bit
BRACCIO
1.8.5 Cerniera lampo
Installatore
App
Installatore 32 bit
64 bit
BRACCIO

Alleniamo la nostra mano

Per implementare con sicurezza idee complesse, utilizzare l'ambiente software e Arduino, i principianti devono metterci le mani sopra. Per fare ciò, si consiglia di padroneggiare prima compiti e progetti più semplici.

Il progetto più semplice che puoi fare è far lampeggiare il LED, che si trova sulla scheda Arduino di fronte alla porta, ogni secondo.

Per fare questo è necessario:

  • collegare il progettista al PC,
  • apriamo il programma, nella sezione “servizio” cerchiamo il blocco “porta seriale”.
  • selezionare l'intervallo richiesto
  • dopodiché è necessario aggiungere il codice presente nell'IDE di Arduino nella sezione "Esempi".

I primi progetti in Arduino per principianti possono essere:

  • LED lampeggiante;
  • collegamento e controllo di un sensore di temperatura;
  • collegamento e controllo di un sensore di movimento;
  • collegamento di una fotoresistenza;
  • controllo del servoazionamento.

Primo progetto

Ora siamo arrivati ​​al nostro primo progetto. Colleghiamo Arduino, LED e pulsante. Questo progetto è perfetto per i principianti.

Il nostro schema sarà così:

Il LED si accenderà dopo aver premuto il pulsante e si spegnerà alla pressione successiva. Lo schizzo o il programma per Arduino stesso sarà così:

// pin dei dispositivi collegati int switchPin = 8; int ledPin = 11; // variabili per memorizzare lo stato del pulsante e del LED boolean lastButton = LOW; booleano currentButton = BASSO; booleano ledOn = falso; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // funzione per l'antirimbalzo booleano debounse(boolean last) ( booleano corrente = digitalRead(switchPin); if(ultimo!= corrente) ( ritardo ( 5); current = digitalRead(switchPin); ) return current; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == BASSO && currentButton == ALTO) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite(LEDPin, ledOn); )

Potresti aver notato la funzione debounse, di cui non abbiamo ancora parlato. È necessario per.

Dopo aver acquisito le competenze iniziali di lavoro con una tavola, puoi iniziare a implementare compiti più complessi e sfaccettati. Il designer ti consente di creare un'auto RC, un elicottero controllabile, creare il tuo telefono, creare un sistema, ecc.

Per accelerare la tua padronanza del lavoro con la scheda Arduino, ti consigliamo di iniziare a realizzare dispositivi dalla nostra sezione, dove i processi per creare i dispositivi e i gadget più interessanti sono descritti passo dopo passo.

Questa lezione fornisce le conoscenze minime richieste per programmare i sistemi Arduino in C. Puoi solo visualizzarla e utilizzarla come informazione di riferimento in futuro. Per chi ha programmato in C su altri sistemi potete saltare l'articolo.

Ribadisco che si tratta di informazioni minime. Descrizione di puntatori, classi, variabili stringa, ecc. verranno fornite nelle lezioni successive. Se qualcosa non è chiaro, non preoccuparti. Ci saranno molti esempi e spiegazioni nelle lezioni future.

Struttura del programma Arduino.

La struttura del programma Arduino è abbastanza semplice e, nella sua forma minimale, è composta da due parti setup() e loop().

configurazione nulla() (

ciclo vuoto() (

La funzione setup() viene eseguita una volta, quando il controller viene acceso o ripristinato. Di solito, in esso avvengono le impostazioni iniziali delle variabili e dei registri. La funzione deve essere presente nel programma, anche se non contiene nulla.

Una volta completato setup(), il controllo passa alla funzione loop(). Esegue i comandi scritti nel suo corpo (tra le parentesi graffe) in un ciclo infinito. In realtà, questi comandi eseguono tutte le azioni algoritmiche del controller.

Le regole originali della sintassi del linguaggio C.

; punto e virgola Le espressioni possono contenere tutti gli spazi e le interruzioni di riga desiderati. La fine di un'espressione è indicata dal simbolo del punto e virgola.

z = x + y;
z=x
+y;

( ) parentesi graffe definire un blocco di funzioni o espressioni. Ad esempio, nelle funzioni setup() e loop().

/* … */ blocco commenti, assicurati di chiudere.

/* questo è un blocco commenti */

// commento di una riga, non è necessario chiudere, valido fino alla fine della riga.

// questa è una riga di commento

Variabili e tipi di dati.

Una variabile è una cella RAM in cui sono archiviate le informazioni. Il programma utilizza variabili per memorizzare i dati di calcolo intermedi. Per i calcoli possono essere utilizzati dati di diversi formati e diverse profondità di bit, quindi le variabili nel linguaggio C hanno i seguenti tipi.

Tipo di dati Profondità, bit Intervallo di numeri
booleano 8 vero falso
car 8 -128 … 127
carattere non firmato 8 0 … 255
byte 8 0 … 255
int 16 -32768 … 32767
intero senza segno 16 0 … 65535
parola 16 0 … 65535
lungo 32 -2147483648 … 2147483647
non firmato lungo 32 0 … 4294967295
corto 16 -32768 … 32767
galleggiante 32 -3.4028235+38 … 3.4028235+38
Doppio 32 -3.4028235+38 … 3.4028235+38

I tipi di dati vengono selezionati in base alla precisione di calcolo richiesta, ai formati dei dati, ecc. Ad esempio, non dovresti scegliere il tipo lungo per un contatore che conta fino a 100. Funzionerà, ma l'operazione occuperà più dati e memoria di programma e richiederà più tempo.

Dichiarazione di variabili.

Viene specificato il tipo di dati, seguito dal nome della variabile.

intero x; // dichiarazione di una variabile denominata x di tipo int
larghezza floatBox; // dichiarazione di una variabile denominata widthBox di tipo float

Tutte le variabili devono essere dichiarate prima di essere utilizzate.

Una variabile può essere dichiarata ovunque in un programma, ma ciò determina quali blocchi di programma possono utilizzarla. Quelli. Le variabili hanno ambiti.

  • Le variabili dichiarate all'inizio del programma, prima della funzione void setup(), sono considerate globali e sono disponibili ovunque nel programma.
  • Le variabili locali sono dichiarate all'interno di funzioni o blocchi come un ciclo for e possono essere utilizzate solo all'interno di blocchi dichiarati. È possibile avere più variabili con lo stesso nome ma ambiti diversi.

modalità intera; // variabile disponibile per tutte le funzioni

configurazione nulla() (
// blocco vuoto, non sono richieste impostazioni iniziali
}

ciclo vuoto() (

conteggio lungo; // la variabile count è disponibile solo nella funzione loop()

for (int i=0; i< 10;) // переменная i доступна только внутри цикла
{
io++;
}
}

Quando si dichiara una variabile, è possibile impostarne il valore iniziale (inizializzare).

intero x = 0; // la variabile x viene dichiarata con il valore iniziale 0
carattere d = 'a'; // la variabile d viene dichiarata con il valore iniziale uguale al codice carattere “a”

Quando si eseguono operazioni aritmetiche con tipi di dati diversi, si verifica la conversione automatica dei tipi di dati. Ma è sempre meglio usare una conversione esplicita.

intero x; // variabile intera
caro; // variabile carattere
intero z; // variabile intera

z = x + (int)y; // la variabile y viene convertita esplicitamente in int

Operazioni aritmetiche.

Operazioni di relazione.

Operazioni logiche.

Operazioni sui puntatori.

Operazioni sui bit.

& E
| O
^ ESCLUSIVO O
~ INVERSIONE
<< SPOSTA A SINISTRA
>> SPOSTA A DESTRA

Operazioni di assegnazione miste.

Selezione delle opzioni, gestione del programma.

Operatore SE verifica la condizione tra parentesi ed esegue l'espressione o il blocco successivo tra parentesi graffe se la condizione è vera.

if (x == 5) // se x=5, allora viene eseguito z=0
z=0;

se (x > 5) // se x >
( z=0; y=8; )

SE ALTRO ti permette di scegliere tra due opzioni.

if (x > 5) // se x > 5, allora il blocco viene eseguito z=0, y=8;
{
z=0;
y=8;
}

{
z=0;
y=0;
}

ALTRIMENTI SE– consente di effettuare selezioni multiple

if (x > 5) // se x > 5, allora il blocco viene eseguito z=0, y=8;
{
z=0;
y=8;
}

else if (x > 20) // se x > 20, questo blocco viene eseguito
{
}

else // altrimenti questo blocco viene eseguito
{
z=0;
y=0;
}

SCATOLA DELL'INTERRUTTORE- scelta multipla. Permette di confrontare una variabile (nell'esempio è x) con diverse costanti (nell'esempio 5 e 10) ed eseguire un blocco in cui la variabile è uguale alla costante.

interruttore (x) (

caso 5:
// il codice viene eseguito se x = 5
rottura;

caso 10:
// il codice viene eseguito se x = 10
rottura;

predefinito:
// il codice viene eseguito se nessuno dei valori precedenti corrisponde
rottura;
}

Ciclo FOR. Il design consente di organizzare cicli con un determinato numero di iterazioni. La sintassi è simile alla seguente:

for (azione prima dell'inizio del ciclo;
condizione di continuazione del ciclo;
azione alla fine di ogni iterazione) (

// codice del corpo del loop

Un esempio di un ciclo di 100 iterazioni.

per (i=0; i< 100; i++) // начальное значение 0, конечное 99, шаг 1

{
somma = somma + I;
}

MENTRE ciclo. L'operatore consente di organizzare i loop con la costruzione:

mentre (espressione)
{
// codice del corpo del loop
}

Il ciclo viene eseguito finché l'espressione tra parentesi è vera. Un esempio di un ciclo per 10 iterazioni.

x = 0;
mentre(x< 10)
{
// codice del corpo del loop
x++;
}

FARE DURANTE– un loop con una condizione all'uscita.

Fare
{
// codice del corpo del loop
) mentre (espressione);

Il ciclo viene eseguito finché l'espressione è vera.
ROTTURA– operatore di uscita dal ciclo. Utilizzato per interrompere l'esecuzione dei cicli for, while, do while.

x = 0;
mentre(x< 10)
{
se (z > 20) rottura; // se z > 20, esce dal ciclo
// codice del corpo del loop
x++;
}

VAI A– operatore di transizione incondizionato.

gotometka1; // vai a metka1
………………
metka1:

CONTINUA- saltare le istruzioni fino alla fine del corpo del ciclo.

x = 0;
mentre(x< 10)
{
// codice del corpo del loop
se (z > 20) continuare; // se z > 20, ritorna all'inizio del corpo del loop
// codice del corpo del loop
x++;
}

Array.

Un array è un'area di memoria in cui vengono memorizzate diverse variabili in sequenza.

Un array è dichiarato in questo modo:

int età; // array di 10 variabili int

peso galleggiante // array di 100 variabili float

Una volta dichiarati, gli array possono essere inizializzati:

int età = ( 23, 54, 34, 24, 45, 56, 23, 23, 27, 28);

Si accede alle variabili dell'array in questo modo:

x = età; // A x viene assegnato il valore del quinto elemento dell'array.
età = 32; // Il 9° elemento dell'array è impostato su 32

La numerazione degli elementi dell'array parte sempre da zero.

Funzioni.

Le funzioni consentono di eseguire le stesse azioni con dati diversi. La funzione ha:

  • il nome con cui viene chiamata;
  • argomenti: dati utilizzati dalla funzione per il calcolo;
  • il tipo di dati restituito dalla funzione.

Descrive una funzione definita dall'utente esterna alle funzioni setup() e loop().

configurazione nulla() (
// il codice viene eseguito una volta all'avvio del programma
}

ciclo vuoto() (
// codice principale, eseguito in un ciclo
}

// dichiarazione di una funzione personalizzata denominata functionName
digitare nomefunzione(tipo argomento1, tipo argomento1, …, tipo argomento)
{
// corpo della funzione
ritorno();
}

Un esempio di funzione che calcola la somma dei quadrati di due argomenti.

int sumQwadr(int x, int y)
{
ritorno(x* x + y*y);
}

La chiamata alla funzione funziona così:

d=2; b=3;
z= sommaQwadr(d, b); // z sarà la somma dei quadrati delle variabili d e b

Le funzioni possono essere integrate, personalizzate o plug-in.

Molto breve, ma questi dati dovrebbero essere sufficienti per iniziare a scrivere programmi in C per i sistemi Arduino.

L'ultima cosa che voglio dirti in questa lezione è come è consuetudine formattare i programmi in C. Penso che se stai leggendo questa lezione per la prima volta, dovresti saltare questa sezione e tornarci più tardi, quando avrai finito qualcosa da formattare.

L'obiettivo principale della progettazione esterna dei programmi è migliorare la leggibilità dei programmi e ridurre il numero di errori formali. Pertanto, per raggiungere questo obiettivo, puoi tranquillamente violare tutte le raccomandazioni.

Nomi in linguaggio C.

I nomi che rappresentano i tipi di dati devono essere scritti in maiuscole e minuscole. La prima lettera del nome deve essere maiuscola (maiuscola).

Segnale, conteggio del tempo

Le variabili devono essere scritte in nomi misti, con la prima lettera minuscola (minuscolo).

Categoria: . Puoi aggiungerlo ai segnalibri.

La prima cosa da fare per padroneggiare Arduino è acquistare una scheda di debug (sarebbe una buona idea acquistare subito una scheda elettronica, ecc.). Ho già descritto quali tipologie di schede Arduino sono presenti sul mercato. Se non hai ancora letto l'articolo ti consiglio di leggerlo. Per apprendere le basi, scegliamo una scheda Arduino Uno standard (l'originale o una buona copia cinese, dipende da te). Quando colleghi la scheda originale per la prima volta, non dovrebbero esserci problemi, ma con quella "cinese" dovrai scavare un po' più a fondo (non preoccuparti, ti mostrerò e ti dirò tutto).

Colleghiamo l'Arduino al computer con un cavo USB. Il LED sulla scheda dovrebbe accendersi SU". Un nuovo dispositivo apparirà in Gestione dispositivi " Dispositivo sconosciuto". È necessario installare il driver. Qui aggiungerò un piccolo ambiguità(il gatto era distratto – non ricordo quale autista ha deciso” problema del dispositivo sconosciuto».

Per prima cosa scaricato e decompresso l'ambiente software Arduino ( arduino-1.6.6-windows). Poi ho scaricato questo. È autoestraente. Avviato il file CH341SER.EXE. Selezionato installazione (INSTALLA). Dopo l'installazione, è apparso un messaggio, fare clic su " OK"(non ho avuto il tempo di leggerlo).

Quindi sono andato alle proprietà del "dispositivo sconosciuto" e ho selezionato il pulsante "Aggiorna driver". Ho selezionato l'opzione "Installa da una posizione specificata": ho indicato la cartella con l'ambiente software Arduino decompresso. Ed ecco, tutto ha funzionato con successo...

Lanciamo il programma Arduino (nel mio caso 1.6.6) e consentiamo l'accesso.

Tutti i progetti (programmi) per Arduino sono costituiti da due parti: configurazione nulla E ciclo vuoto. configurazione nulla viene eseguito una sola volta e ciclo vuoto viene fatto più e più volte.

Prima di continuare, è necessario completare due operazioni obbligatorie:

— indica nell'ambiente software Arduino quale scheda stai utilizzando. Strumenti->scheda->Arduino Uno. Se il segno che ti serve è già sul tabellone, va bene; in caso contrario, metti un segno.

— specificare nell'ambiente software quale porta seriale si utilizza per comunicare con la scheda. Strumenti->porta->COM3. Se il segno è già sul porto, va bene, altrimenti metti un segno. Se nella sezione porte è elencata più di una porta, come puoi scoprire quale viene utilizzata per connettersi alla scheda? Prendiamo la scheda e scolleghiamo il filo da essa. Andiamo di nuovo ai porti e vediamo quale è scomparso. Nel mio caso, la scheda "porte" è diventata del tutto inattiva.

Ricollegare il cavo USB.

Il primo programma non richiede moduli aggiuntivi. Accenderemo il LED, che è già montato sulla scheda (al pin 13 del microcontrollore).

Innanzitutto, configuriamo il pin 13 (ingresso o uscita).

Per fare ciò, entra nel blocco “ configurazione nulla" squadra pinMode , indichiamo i parametri tra parentesi (13, USCITA) (Quale pin è coinvolto, Modalità operativa). L'ambiente software evidenzia parole/comandi con il colore del carattere appropriato.

Vai al blocco " ciclo vuoto"e inserisci il comando digitalWrite con parametri (13, ALTO) .


Il primo programma è pronto, ora non resta che caricarlo nel microcontrollore. Fare clic sul pulsante CARICA.

Il LED si accese. Ma non essere così scettico riguardo alla semplicità del primo programma. Hai appena imparato il primo comando di controllo. Al posto del LED è possibile collegare qualsiasi carico (che sia l'illuminazione di una stanza o un servoazionamento che interrompa l'erogazione dell'acqua), ma di tutto questo parleremo più avanti...

Abbiamo acceso il led, ha brillato un po’, è ora di spegnerlo. Per fare ciò, modifichiamo il programma che abbiamo scritto. Invece di " ALTO "scriviamo" BASSO ».


Fare clic sul pulsante CARICA. Il LED si è spento.

Abbiamo già conosciuto il concetto di “”, è ora di usarlo. Ulteriori programmi diventeranno sempre più voluminosi e complessi e il lavoro per modificarli richiederà sempre più tempo se continuiamo a scrivere codice come questo.

Guardiamo il programma (accendiamo di nuovo il LED). Impostiamo il numero pin del microcontrollore non come un numero 13 , ma una variabile a cui verrà assegnato il valore dell'output corrispondente (nel nostro caso, 13). In futuro sarà molto comodo modificare i valori delle variabili all'inizio del programma, invece di frugare nel codice alla ricerca dei punti in cui è necessario modificare i valori.

Crea una variabile globale int LED_pin = 13; (tipo di variabile, nome della variabile, valore ad essa assegnato).


Fare clic sul pulsante CARICA. Il LED si accende. Tutto funziona perfettamente.

In questa lezione, oltre ad accendere/spegnere il LED, impareremo anche come farlo lampeggiare.

Per fare ciò, inserisci il secondo comando “ digitalWrite» con parametri (LED_pin, BASSO).


Fare clic sul pulsante CARICA. E cosa vediamo? Il LED si illumina “al massimo”. Il motivo sta nel fatto che il tempo di commutazione di due stati ( ALTO E BASSO ) è trascurabile e l'occhio umano non è in grado di rilevare questi interruttori. È necessario aumentare il tempo in cui il LED rimane in uno degli stati. Per fare questo scriviamo il comando ritardo con parametro (1000 ) . Ritardo in millisecondi: 1000 millisecondi – 1 secondo. L'algoritmo del programma è il seguente: accendi il LED - attendi 1 secondo, spegni il LED - attendi 1 secondo, ecc.


Fare clic sul pulsante CARICA. Il LED cominciò a tremolare. Tutto funziona.

Finalizziamo il programma creando una variabile a cui verrà assegnato un valore responsabile della durata del ritardo.


Fare clic sul pulsante CARICA. Il LED lampeggia come prima.

Finalizziamo il programma che abbiamo scritto. I compiti sono i seguenti:

  • Il LED è acceso per 0,2 secondi e spento per 0,8 secondi;
  • Il LED è acceso per 0,7 secondi e spento per 0,3 secondi.

Il programma ha creato 2 variabili responsabili dei ritardi temporali. Uno determina il tempo di funzionamento del LED acceso e il secondo determina il tempo di funzionamento del LED spento.

Grazie per l'attenzione. Arrivederci!

I migliori articoli sull'argomento