SISTEMA DI PARCHEGGIO FISSO  

Come scheda di controllo si può utilizzare anche l'ARDUINO NANO

 

 

 

  PROCEDURA ELETTRONICA TRAMITE PROGRAMMA SOFTWARE (DA INSERIRE NEL PROGRAMMA):

void loop(){

 digitalWrite(TRIG_PIN, 0); // Ingresso TRIGGER a 0 o LOW

  delayMicroseconds(2);     // Attendo 2 microsecondi

  digitalWrite(TRIG_PIN, 1); // Attivo il TRIGGER con segnale alto o HIGH

  delayMicroseconds(10);    // Segnale alto per 10 microsecondi

  digitalWrite(TRIG_PIN, 0); // Disattivo il TRIGGER  segnale a 0 o LOW

Temp_ECHO = pulseIn(ECHO_PIN,HIGH); //Durata del fronte alto dell'ECHO

.......

Esempio tipico di funzionamento di un relè con pilotaggio a transistor:

 

Modulo  con due relè, in vendita anche modulo ad un solo relè.

 

 

Utilizzo di un solo modulo, il collegamento ad Arduino è molto semplice.

    Per il sistema di parcheggio prendo a spunto un semplice programma per la misura della distanza.

 In seguito nel programma "inserisco" :

 

Con la libreria di Erick SIMOES si "condensa" il programma sopra esposto.

Collegare Arduino al P.C. e lanciare l'I.D.E. (L'ambiente di programmazione)

Dopo aver installato la libreria procediamo alla programmazione.

Programma ridotto:

Come programma, da installare su qualsiasi Arduino o clone, si può utilizzare una delle due versioni.

La versione ridotta non è compatibile con il software TINKERCAD in quanto nel suddetto software non è presente la libreria di Erick SIMOES

Sistema di controllo ultrasonico, fisso, applicato sulla parete di fondo del garage, altezza paraurti.

Accensione di una lampada ad una determinata distanza paraurti -muro(es.. 25 cm ).

Se sprovvisti di alimentazione elettrica, è possibile alimentare il tutto con una normale batteria auto non utilizzata, purchè eroghi una tensione intorno ai 9 Volt.

Ecco il programma completo (Copia ed Incolla per TINKERCAD):

#define ECHO_PIN 2

#define TRIG_PIN 3

 int pin_rele = 5;//collegato il relè

 float SPAZIO =0;

 float Vel = 0.034; // 0.034 cm al microsecondo

 float Temp_ECHO =0; // Tempo durata segnale alto ECHO

 float sogliamin = 25; //  Range minimo da inserire

void setup(){

Serial.begin(9600);

pinMode(ECHO_PIN, INPUT);  //  PIN 2 dell'ECHO come ingresso

pinMode(TRIG_PIN, OUTPUT); //  PIN 3 del TRIGGER come uscita

pinMode(pin_rele,  OUTPUT); //  PIN 10 come uscita

}

void loop(){

  digitalWrite(TRIG_PIN, 0); // Ingresso TRIGGER a 0 o LOW

  delayMicroseconds(2);     // Attendo 2 microsecondi

  digitalWrite(TRIG_PIN, 1); // Attivo il TRIGGER con segnale alto o HIGH

  delayMicroseconds(10);    // Segnale alto per 10 microsecondi

  digitalWrite(TRIG_PIN, 0); // Disattivo il TRIGGER  segnale a 0 o LOW

Temp_ECHO = pulseIn(ECHO_PIN,HIGH); //Durata del fronte alto dell'ECHO

//Serial.println(Temp_ECHO);

SPAZIO = Vel *(Temp_ECHO/2);

Serial.print(" La distanza in cm. = ");

Serial.println(SPAZIO);

Serial.println();

// Controllo il RANGE della distanza minima per attivare nel caso il relè

//if(SPAZIO>sogliamax ||SPAZIO<sogliamin )digitalWrite (pin_Led,1);

if(SPAZIO<sogliamin )digitalWrite (pin_rele,1);//Attivo RELE'

else digitalWrite (pin_rele,0);

delay(100);

}

CIRCUITO ELETTRONICO COMPLETO :

 

Simulazione con TINKERCAD:

SIMULATORE per PARCHEGGIO ad ultrasuoni con 3 Led in TINKERCAD:

Ecco il programma completo (Copia ed Incolla per TINKERCAD):

#define ECHO_PIN 2

#define TRIG_PIN 3

 int led_verde = 8;//collegato led verde

 int led_giallo = 9;//collegato led giallo

 int led_rosso = 10;//collegato led rosso

 float SPAZIO =0;

 float Vel = 0.034; // 0.034 cm al microsecondo

 float Temp_ECHO =0; // Tempo durata segnale alto ECHO

 float max =40;   // Range massimo

 float min = 15; //  Range minimo

 // Se la distanza paraurti-muro è:

 // uguale o superiore a max cm.   => led verde acceso

 // se è compresa tra max e min cm. => led giallo acceso

 // uguale o minore di min cm.     => led rosso acceso

void setup(){

Serial.begin(9600);

pinMode(ECHO_PIN, INPUT);  //  PIN 2 dell'ECHO come ingresso

pinMode(TRIG_PIN, OUTPUT); //  PIN 3 del TRIGGER come uscita

pinMode(led_verde,  OUTPUT); //  PIN 8 come uscita

pinMode(led_giallo,  OUTPUT); //  PIN 90 come uscita

pinMode(led_rosso,  OUTPUT); //  PIN 10 come uscita

}

void loop(){

  digitalWrite(TRIG_PIN, LOW); // Ingresso TRIGGER a 0 o LOW

  delayMicroseconds(2);     // Attendo 2 microsecondi

  digitalWrite(TRIG_PIN, HIGH); // Attivo il TRIGGER con segnale alto o HIGH

  delayMicroseconds(10);    // Segnale alto per 10 microsecondi

  digitalWrite(TRIG_PIN, LOW); // Disattivo il TRIGGER  segnale a 0 o LOW

Temp_ECHO = pulseIn(ECHO_PIN,HIGH); //Durata del fronte alto dell'ECHO

//Serial.println(Temp_ECHO);

SPAZIO = Vel *(Temp_ECHO/2);

Serial.print(" La distanza in cm. = ");

Serial.println(SPAZIO);

Serial.println();

   if(SPAZIO>=max){

    digitalWrite(led_verde,HIGH);

        digitalWrite(led_giallo,LOW);

            digitalWrite(led_rosso,LOW);

    }

   

  if (SPAZIO<max and SPAZIO>min){

    digitalWrite(led_giallo,HIGH);

        digitalWrite(led_rosso,LOW);

            digitalWrite(led_verde,LOW);

    }

  if(SPAZIO<=min){

    digitalWrite(led_rosso,HIGH);

        digitalWrite(led_verde,LOW);

        digitalWrite(led_giallo,LOW); 

      }

     delay(50);

}

}

Medesimo programma per le due schede:

N.B.  Se si acquista un clone dell'Arduino Nano fare attenzione alla selezione del modello all'interno dell'IDE di programmazione.

ARDUINO UNO:

 

CONTINUA ......