LED lampeggiante

pj1 led lampeggiante

Il LED è collegato alla uscita digitale 8.

In questo esempio utilizzerò le funzioni : Loop ( ciclo) - Output (uscita) - Delay ( ritardo) e il componente LED generico, che collegherò al pin 14 del chip ATMEGA328, corrispondente alla uscita PB0 (digital 8).

  • Nuovo progetto (new project)
  • Selezionare Arduino UNO R3 PDIP e cliccare su OK.
led lampeggiante pj1_2
  • Si aprirà questa schermata
led lampeggiante pj1_3
  • Cliccando sulla icona BEGIN (inizio), appare una freccia bianca sul lato sinistro che indica dove trascinare le icone delle funzioni presenti sulla barra laterale sinistra.
  • Poiché il nostro programma dovrà continuare indefinitamente, nella espressione del ciclo di LOOP (ciclo) che ho chiamato “lampeggio LED”, il valore sarà 1.
led lampeggiante pj1_4
  • Definisco il PIN collegato al LED, come uscita:
  • Attribuisco all’ Output, il nome “uscita LED”, e assegno al bit 0 (zero) della porta B, il Valore numerico  0 (zero) ; che significa che sul bit 0 la tensione di uscita sarà di 0 volt ( LED spento).
led lampeggiante pj1_7

questo è quello che vedremo sullo schermo.

led lampeggiante pj1_8
  • Collego un LED al PIN 0 della porta B.
led lampeggiante pj1_9
  • Clicco sul LED apparso nel 3D system Panel e con la rotellina del mouse , ingrandisco l’oggetto.

nel menù properties (proprietà), appare il Component selezionato, che il  generic LED

nel sottomenù Connections:

clicco su $port., seleziono la porta B e scelgo, con il mouse, il pin 14 e il bit 0.

polarity: active high (attivo alto, cioè quando il livello logico è 1 il LED è acceso).

led lampeggiante pj1_10
led lampeggiante pj1_11
  • nel diagramma di flusso, aggiungo un'altra icona output, con gli stessi parametri della porta precedente, ma con il valore s= 1 (led acceso); per comodità possiamo copiare l’icona uscita LED precedente e incollarla  di seguito, con doppio click , apro  “properties: Output e su Value (valore) scrivo 1.
led lampeggiante pj1_12

Questo sarà il diagramma di flusso risultante

PROVA DEL PROGRAMMA

led lampeggiante pj1_13

Faccio partire il programma, cliccando sulla freccia rossa del menù orizzontale principale, il LED, rappresentato in 3D:system panel, lampeggerà casualmente, in funzione della velocità di simulazione (simulation debugger), simultaneamente il pin 14 del chip ATMEGA328, si accenderà e spegnerà anche se a velocità diversa.

  • introduco una icona Delay (ritardo) impostando il valore a 1 secondo, e eseguo nuovamente il programma.

Per comprendere quello che accade all’esecuzione del programma, utilizzo la funzione passo-passo; step into o step over.

led lampeggiante pj1_14

Il lampeggio è irregolare

  • introduco un ulteriore ciclo di ritardo di 1 secondo, dopo la seconda icona di “uscita LED” ed eseguo nuovamente il programma.

la simulazione avviene correttamente, il LED si accende per un secondo e rimane spento per 1 secondo.

led lampeggiante pj1

Il diagramma del ciclo Loop, corrisponde con l’esempio riportato nella documentazione ufficiale di Arduino riportato di seguito.

led lampeggiante pj1_15
led lampeggiante atmega

uscita PB0 ( digital 8)

Start

Pausa

Stop

Passo passo

Velocità di simulazione

  • void loop() {
  • digitalWrite(led, HIGH); // accende il LED (valore del livello della tensione di uscita è
  • HIGH
  • delay(1000); // aspetta per 1 secondo
  • digitalWrite(led, LOW); // spegne il LED (valore del livello della tensione di uscita è
  • LOW
  • delay(1000); // aspetta per 1 secondo
  • }

Video inserimento Loop,out,delay e Led

C Code

Riccardo Monti