Piero è un appassionato arduino e makers che ha realizzato una Soluzione Parcheggio Auto con arduino.
Piero ha voluto condividere con noi il suo progetto e mi ha inviato un dettagliato documento di presentazione sia personale sia del progetto che riporto fedelmente, buona lettura.
Mi presento
Ciao, prima di esporvi il mio progetto, mi presento: sono Piero Alaimo, uno studente di ingegneria elettronica dell’università di Palermo, alle prime armi con Arduino.
Dopo i primi semplici circuiti implementati per familiarizzare con la scheda, spinto dalla curiosità e dalla voglia di sperimentare, mi sono cimentato in questo mio primo (e credo non ultimo) progetto che spero possa essere per tutti voi uno spunto per ulteriori miglioramenti e sviluppi. Spero vi piaccia!!!
Prima però volevo ringraziare Mauro per avermi concesso la possibilità di pubblicarlo sul suo blog (che consiglio a tutti di visitare in quanto ben fatto e da cui personalmente ho tratto ispirazione).
Finalità del progetto
Il seguente lavoro ha lo scopo di descrivere le funzionalità, le caratteristiche e le scelte adottate che mi hanno condotto alla realizzazione di questo prototipo di parcheggio automatizzato (vedi fig. 1). La finalità del progetto è quella di automatizzare le operazioni di ingresso e uscita da un parcheggio auto evitando l’ausilio di personale e dunque riducendo drasticamente i costi di gestione e permettendo dunque di massimizzare i profitti.
Il sistema progettato, è infatti in grado di discriminare se vi è una automobile che vuole entrare od uscire e in base al valore di un contatore e di led di segnalazione è in grado di segnalare la disponibilità o meno di posti auto all’interno. L’accesso al parcheggio è inoltre regolamentata da una sbarra anch’essa pilotata attraverso il nostro sistema di controllo e che svolge azioni diverse in base allo stato di ricevitori ad IR e dello stato dello stesso contatore. Nel sistema progettato abbiamo inoltre previsto la segnalazione numerica dei posti auto disponibili (oltre a quella visiva tramite led) sullo schermo di un PC attraverso porta di comunicazione seriale. Un ulteriore sviluppo sarebbe dunque implementare anche un visualizzatore a led (con poche e semplici modifiche a livello hardware/software).
Specifiche di progetto
Il progetto da realizzare attraverso scheda Arduino (modello da scegliere) riguarda un parcheggio automatizzato per auto. Si prevedono le seguenti specifiche:
- L’ingresso e l’uscita dal parcheggio (esclusivamente per auto) è unico e permette il passaggio di una sola vettura alla volta in ingresso oppure in uscita. Non si considera il passaggio pedonale in quanto per essi è previsto un apposito accesso ;
- Si prevedono un numero ben preciso N di posti auto disponibili (nel caso specifico 9);
- Due led posti in corrispondenza dell’ingresso (di color verde e rosso rispettivamente) segneleranno la disponibilità o meno di posti auto (led verde acceso = disponibilità posti auto; led rosso acceso = posti auto esauriti);
- Si prevedono due coppie di Tx-Rx ad IR utilizzati per aggiornare il conteggio (disposti rispettivamente lato ingresso e lato uscita) in modo tale da poter decrementare (incrementare) il contatore dei posti auto disponibili quando una vettura entra (esce) dal locale parcheggio;
- L’ingresso e l’uscita dal posteggio sarà regolamentata da una sbarra automatizzata pilotata da un servomotore posta tra i due sensori (vedi figura 3). Il suo funzionamento sarà il seguente:
- Se l’auto esce dal posteggio, la sbarra si alzerà lasciandola passare. Immediatamente dopo la sbarra si abbasserà e il contatore posti auto disponibili verrà incrementato;
- Se invece vi sarà un autoveicolo in ingresso la sbarra si alzerà e il contatore posti auto disponibili verrà decrementato (soltanto se vi saranno posti auto disponibili);
Si prevede durante il funzionamento della sbarra l’accensione di un led (giallo) di segnalazione – sbarra in movimento.
Modalità di funzionamento e descrizione del sistema
I due sensori ottici di rilevamento del passaggio sono dei ricevitori ad infrarosso integrati (che da ora in poi verranno definiti sensore_A e sensore_B) posti rispettivamente in ingresso e in uscita del parcheggio auto; il loro compito è rilevare l’interruzione del fascio di luce emesso da due led ad infrarosso posti in prossimità rispettivamente del sensore_A e del sensore_B.
E’ ovvia la scelta di utilizzare dei trasmettitori ad IR. Così facendo, i ricevitori saranno immuni alla luce ambientale.
In Figura 2 è riportata la disposizione corretta dei led emettitori IR e dei relativi sensori, insieme ad una schematizzazione di insieme. Si ricordi che l’automobile in entrata e in uscita deve percorrere uno stretto corridoio dove risultano posizionati i due sensori determinando in tal modo l’interruzione del fascio luminoso emesso dai duel led IR. Tra le due coppie di Tx-Rx è inoltre posta una sbarra (azionata tramite servomotore) che regola il transito auto.
Sono inoltre presenti, in ingresso tre led di segnalazione di colore verde, rosso e giallo (che segnalano quando accesi rispettivamente: posti auto disponibili, posti auto esauriti, barra in movimento).
In tab. 3 è riassunta la lista dei componenti principali che ho adoperato, mentre in fig. 3 la loro connessione.
lo schema elettrico del progetto:
Software per progettazione PCB – KiCad
Per progettare il nostro circuito stampato (PCB), abbiamo adoperato KiCad, una suite open source di Electronic Design Automation (EDA) per il disegno di schemi elettrici e circuiti stampati.
E’ un ambiente di sviluppo integrato (IDE) che raggruppa un editor di schematici (EeSchema), un programma per componenti e moduli (Cvpcb), un editor di circuiti stampati (Pcbnew) e infine un visualizzatore di file Gerber (GerbView – l’unico modulo che non ho adoperato nel mio progetto).
A fianco riportiamo il layout della scheda comprendente le due coppie di Tx-Rx ad infrarosso, i 3 led di segnalazione, con in più i connettori per collegare la scheda con Arduino, con il servomotore e per collegare il pacco batterie (4 pile da 1,5V) per l’alimentazione eslusiva del servo. Dunque avrò due linee di alimentazione separate: una per il servo e l’altra per il resto del circuito (attraverso porta seriale connessa al PC) |
|
Questo a sinistra è il layout 3D (lato componenti) |
|
Questo a destra è invece il layout 3D (lato saldature) Dimensioni della scheda: 9×7 cm.
|
Listato Commentato
/* * Programma * Posteggio auto */ #define LEDverde 13 // Led Verde connesso al pin 13 // Led segnalaz. posti disponibili #define LEDgiallo 8 // Led Giallo connesso al pin 8 // Led segnalaz. barra in movim. #define LEDrosso 5 // Led Rosso connesso al pin 5 // Led segnalaz. posti auto esauriti #define RXTSOP 2 // Ricevitore TSOP connesso alla porta 2 #define TXIR 11 // Trasmettitore IR connesso al pin 11 #define RXTSOPB 4 // Ricevitore TSOPB connesso alla porta 4 #define TXIRB 3 // Trasmettitore IR B connesso al pin 3 #include <Servo.h> // Includi libreria Servo Servo myservo; // Creo l’oggetto myservo per controllare // la rotaz. del servo #define ServoM 12 //Servomotore connesso al pin 12 #define BarLow 177 //Barra abbassata #define BarUp 95 //Barra alzata int val = 0; // Definisco una variabile // di tipo intero (integer) val int val2 = 0; // Definisco una variabile // di tipo intero (integer) val2 int vecchio_val = 0; // Definisco una variabile // di tipo intero (integer) vecchio_val int vecchio_val2 = 0; // Definisco una variabile // di tipo intero (integer) vecchio_val2 int vecchio_val3 = 0; // Definisco una variabile // di tipo intero (integer) vecchio_val3 int vecchio_val4 = 1; // Definisco una variabile // di tipo intero (integer) vecchio_val4 int posti_auto_disp; // Variabile posti auto disponibili int posti_auto_disp_old=-1 // Definisco una variabile // di tipo intero (integer) int state = 0; // Definisco la variabile state #include <EEPROM.h> // Includo libreria EEPROM per conservare // in memoria non volatile void turn_off_IR () // Inizializzazione registri Timer2 { TCCR2A = 0; TCCR2B = 0; OCR2A = 0 OCR2B = 0; digitalWrite(TXIR, LOW); // Tx off digitalWrite(TXIRB, LOW); // Tx B off } void turn_on_IR () // Set up Timer 2 (connesso alle porte 3 e 11) { TCCR2A = _BV(WGM21) | _BV(COM2A0) | _BV(COM2B0); // Timer impost. // a 01010010 TCCR2B = _BV(CS20); // No prescaler OCR2A = 210; // Il pin 11 è settato per emettere // un segnale a 38 khz OCR2B = 210; // Il pin 3 è settato per emettere // un segnale a 38 khz } void setup(){ Serial.begin(9600); // Apre la porta seriale e imposta // la velocità di trasm. a 9600 bps posti_auto_disp = EEPROM.read (10); // Memorizzo su memoria // non volatile posti_auto_disp pinMode(LEDverde, OUTPUT); // Imposta il Pin come uscita pinMode(LEDgiallo, OUTPUT); // Imposta il Pin come uscita pinMode(LEDrosso, OUTPUT); // Imposta il Pin come uscita pinMode(TXIR, OUTPUT); // Imposta il Pin come uscita pinMode(RXTSOP, INPUT); // Imposta il Pin come ingresso pinMode(TXIRB, OUTPUT); // Imposta il Pin come uscita pinMode(RXTSOPB, INPUT); // Imposta il Pin come ingresso digitalWrite(verde, HIGH); // Accende il led verde digitalWrite(LEDrosso, LOW); // Spegne il led rosso turn_on_IR(); // search for IR // I due Tx ad IR emettono segnale // a frequenza 38 kHz myservo.write(BarLow); // Barra abbassata } void loop(){ delay(50); // Ritardo di 50 ms myservo.attach(ServoM); // Lega l’oggetto myservo al Pin 12 // a cui abbiamo collegato il servo val = digitalRead(RXTSOPB); // Memorizzo in val lo stato // del ricevitore TSOPB val2 = digitalRead(RXTSOP); // Memorizzo in val2 lo stato // del ricevitore TSOP if (posti_auto_disp_old!=posti_auto_disp) Serial.println(posti_auto_disp); // Visualizzo il numero di posti // disponibili via seriale posti_auto_disp_old=posti_auto_disp; ******** sezione ingresso auto ************* if ((val == HIGH) && (vecchio_val == LOW)){ // Transizione 0 → 1 TSOPB if ((val2 == LOW)){ // Fascio TSOP // non interrotto state=0; if ((posti_auto_disp > 0)){ // Ci sono posti diponibili digitalWrite(LEDgiallo, HIGH); myservo.write(BarUp); } } } delay(200); // Attesa di 200 millisecondi vecchio_val = val; // Memorizzo in vecchio_val lo stato di TSOPB if ((val2 == LOW) && (vecchio_val2 == HIGH)){ // Transizione 1 → 0 TSOP if ((val == LOW)){ // Fascio TSOPB non interrotto if ((posti_auto_disp > 0)){ // Ci sono posti diponibili if ((state == 0)){ posti_auto_disp --; EEPROM.write (10, posti_auto_disp); // Scrivo su memoria EEPROM // posti_auto_disp Serial.println (“AutoIn”); // Visualizzo su PC “AutoIn” // via seriale digitalWrite(LEDverde, HIGH); // Accende led verde digitalWrite(LEDrosso, LOW); // Spegne led rosso myservo.write(BarLow); // Abbassa la sbarra digitalWrite(LEDgiallo, LOW); // Spegne led giallo } } if ((posti_auto_disp == 0)){ //Non ci sono più posti diponibili digitalWrite(LEDverde, LOW); //Spegne il led verde digitalWrite(LEDrosso, HIGH); //Accende il led rosso myservo.write(BarLow); //Abbassa la sbarra digitalWrite(LEDgiallo, LOW); //Spegne il led giallo } } } delay(200); // Attesa di 200 millisecondi vecchio_val2 = val2; // Memorizzo lo stato di TSOP ******** sezione uscita auto ************** if ((val2 == HIGH) && (vecchio_val3 == LOW)){ //Transizione 0 → 1 TSOP if ((val == LOW)){ // Fascio TSOPB non interrotto state=1; if ((posti_auto_disp != 9)){ // Ci sono macchine // nel il parcheggio myservo.write(BarUp); // Alzo la sbarra digitalWrite(LEDgiallo, HIGH); // Accendo il led giallo } } } delay(200); // Attesa di 200 millisecondi vecchio_val3 = val2; // Memorizzo lo stato di TSOP if ((val == LOW) && (vecchio_val4 == HIGH)){ // Transizione 1 → 0 TSOPB if ((val2 == LOW)){ // Fascio TSOP non interrotto if ((posti_auto_disp < 9)){ // Ci sono posti auto // disponibili if ((state == 1)){ posti_auto_disp ++; // Incrementa posti auto // disponibili EEPROM.write (10, posti_auto_disp); // Scrivo in memoria // posti_auto_disp Serial.println (“AutoOut”); // Visualizzo su PC “AutoOut” // via seriale digitalWrite(LEDverde, HIGH); // Accende il led verde digitalWrite(LEDrosso, LOW); // Spegne il led rosso myservo.write(BarLow); // Abbassa la sbarra digitalWrite(LEDgiallo, LOW); // Spegne led giallo } } if ((posti_auto_disp == 9)){ // Raggiunta Capacità Max // Non incremento contatore digitalWrite(LEDrosso, LOW); // Spengo led rosso digitalWrite(LEDverde, HIGH); // Accendo led verde myservo.write(BarLow); // Abbasso sbarra digitalWrite(LEDgiallo, LOW); // Spengo led giallo } } } delay(200); // Attesa di // 200 millisecondi vecchio_val4 = val; // Memorizzo lo stato TSOPB }
Il video realizzato da Piero
Buon parcheggio !!!
66 commenti
Vai al modulo dei commenti
Complimenti per il progetto! Ti suggerisco di integrare la possibilità di capire quale posto è libero e quale è occupato. So per certo che alcune aziende ci lavorano 🙂
Autore
Grazie Carlo,
sono sicuro che Piero apprezzerà il suggerimento 🙂
Ciao a Tutti , mi complimento per il progetto , che mi ha dato alcuni spunti per la realizzazione di un progetto che vorrei realizzare per automatizzare una troncatrice radiale , al fine di portare avanti automaticamente il legno da tagliare , contando i blocchetti tagliati.
Ancora tanti complimenti , anche a Mauro , per mè è un grande punto di riferimento dal quale ho appreso , con chiarezza , molte informazioni su arduino.
continua cosi Grande Mauro
Ciao
Marco
Autore
Grazie Marco,
se vorrai condividere il tuo progetto sul blog sarò felice di offrirtene la possibilità.
Ogni volta che qualcuno condivide un progetto cresciamo tutti 🙂
salve con questo programma il mio circuito del parcheggio funziona tutto correttamente… l’unica cosa che non funziona e che all’ingresso dell auto la sbarra si alza e poi non si abbassa piu una volta entrata la macchina come mai? (all’uscita dell auto funziona tutto correttamente)
Autore
Ciao Daniele,
ti consiglio di controllare bene il codice e verificare i segnali che ti arrivano dai sensori, sembra un errore nella lettura del sensore oltre la sbarra o un ingaggio errato sulla tempistica.
Caro Mauro; ho riscontrato dei problemi durante il controllo del codice su arduino e di conseguenza non mi fa trasferire il codice nell’arduino mi sapresti dire il perchè?
Autore
Ciao Giorgio,
che tipo di problemi/errori riscontri?
Se leggi bene i messaggi che l’IDE ti da sono sicuro che capirai cosa manca o dov’è l’errore.
quando ffaccio la verifica del codice mi da questi errori :
sketch_mar07a:119: error: stray ‘\’ in program
sketch_mar07a:119: error: stray ‘\’ in program
sketch_mar07a:162: error: stray ‘\’ in program
sketch_mar07a:162: error: stray ‘\’ in program
sketch_mar07a:38: error: expected ‘,’ or ‘;’ before ‘int’
sketch_mar07a.ino: In function ‘void turn_off_IR()’:
sketch_mar07a:47: error: ‘0’ cannot be used as a function
sketch_mar07a.ino: In function ‘void setup()’:
sketch_mar07a:75: error: ‘verde’ was not declared in this scope
sketch_mar07a.ino: In function ‘void loop()’:
sketch_mar07a:97: error: ‘sezione’ was not declared in this scope
sketch_mar07a:97: error: expected `;’ before ‘ingresso’
sketch_mar07a:183: error: expected `}’ at end of input
Autore
Ciao Giorgio,
sono le prime righe dell’errore o le hai copiate in mezzo all’errore perché non sono chiare e di solito l’IDE è alquanto preciso sugli errori.
Nn ho capito bene cosa intendi,comunque quelli sono tutti gli errori che mi spuntano durante la verifica del codice.
Autore
Ciao Giorgio,
di solito l’IDe è più esplicito e da molte più info a chi scrive codice, tuttavia gli errori che mostra, anche se pochi, dicono:
“sketch_mar07a:38: error: expected ‘,’ or ‘;’ before ‘int’” se guardi alla linea 36 manca un ; alla fine della riga, basta leggerlo
“sketch_mar07a:47: error: ‘0’ cannot be used as a function” c’è qualche carattere sporco su questa linea, prova a cancellarla e riscriverla senza copia e incolla
“sketch_mar07a:75: error: ‘verde’ was not declared in this scope” è un errore di battitura la variabile si chiama LEDverde e non verde
“sketch_mar07a:97: error: ‘sezione’ was not declared in this scope” alla linea 97 mancano le // all’inizio della riga di commento
“sketch_mar07a:97: error: expected `;’ before ‘ingresso’” stesso errore del precedente, si risolve risolvendo il precedente
“sketch_mar07a:119: error: stray ‘\’ in program” riscrivi il carattere ” lo ha preso come carattere speciale
“sketch_mar07a:162: error: stray ‘\’ in program” vedi sopra
“sketch_mar07a:183: error: expected `}’ at end of input” c’è una parentesi in più o in meno nelle righe precedenti, prova a cercarla e rimuoverla o aggiungerla.
In generale ti consigli odi leggere bene gli errori, se vuoi realizzare i progetti con arduino, e vedrai che ti dicono molto, gli errori peggiori sono quelli non segnalati ma logici 🙂
GRAZIE=)
Caro Mauro mi potresti dire Che cosa è il “conn-2 p1” ?ed è attaccato al servo se non sbaglio, giusto?
Autore
Ciao Giorgio,
lascio che Piero, autore del progetto, ti risponda in quanto ha disegnato lui lo schema elettrico.
Come faccio a contattare Piero?:)
Autore
Ciao Giorgio,
Piero legge i commenti al suo articolo e se può risponderti lo farà di certo.
ho capito cosa è il conn 2 e ho montato il circuito ma i sensori nn danno nessun segno di vita e il servo nn si muove ,Piero se leggi questo messaggio perfavore rispondi al più presto perché tra qualche mese lo dovrò portare alla maturità . grazie in anticipo 🙂
Autore
Ciao Giorgio,
in attesa che Pietro risponda hai 2 o più mesi per capire da solo come deve funzionare tutto e correggere quello che impedisce il funzionamento.
Direi che per un ragazzo con voglia di imparare come te una settimana è più che sufficiente per farlo funzionare.
Mi potresti dire cosa sarebbe il con 2?
Autore
Ciao Davide,
a quale riga dello sketch ti riferisci ?
Mi riferisci allo schema elettrico. C’è conn 3 che sarebbe il servomotere e conn 2 che non ho capito cosa sarebbe.
Autore
Ciao Davide,
lascio il tuo commento on-line perché l’autore del progetto possa darti risposta.
Salve è da poco che sto “masticando” un po’ di Arduino quindi premetto che non potrei essere tanto chiaro nella spiegazione del mio problema ! Volevo innanzitutto complimentarmi con l’autore del progetto perché mi ha aiutato molto a capire il funzionamento del parcheggio che sto progettando io per la maturità ! In sostanza è molto simile a quello realizzato sopra però esegue queste operazioni:
– Vi è un pulsante in ingresso al parcheggio che se premuto mi alza il servomotore di 90 gradi
– dopo che il servo si è alzato vi è un ritardo di 2 secondi che permette all’auto di superare la sbarra
– dopo il servo è posta una barriera IR (diodo HIR – foto diodo) che simula la fotocellula, il fotodiodo è collegato all’analog 0 di Arduino e quindi quando viene interrotto il fascio la lettura del fotodiodo è 380 mentre se il fascio non è interrotto il pin legge 430 !
– infine dovrei leggere sul monitor seriale il numero dei posti disponibili come avviene nel video che avete postato
Il mio problema è che non riesco a visualizzare già dall’inizio il numero dei posti liberi (che dovrebbe essere 10 mentre parte ogni volta da valori diversi come ad esempio 230, 2020 ecc..) quindi volevo sapere qual’e il codice che mi permette ad inizio loop di visualizzare il numero 10 sul monitor seriale e l’altra porzione di cidice che alla lettura del valore sul pinA0 inferiore di 430 mi visualizza sul monitor seriale “Auto in” e poi decrementa il contatore !
Grazie per la disponibilità!
Autore
Ciao Andrea,
lascio la risposta all’autore del progetto che di certo saprà aiutarti meglio di me.
Sottolineo solo che il codice è completamente commentato e questo dovrebbe esserti sufficiente a comprendere quello che fa e come modificarlo per adattarlo alle tue esigenze.
Salve! Per gli esami di maturità ho intenzione di portare questo bel progetto.. ero arrivato ad una conclusione simile con l’aiuto del professore (purtroppo a scuola non ci insegnano arduino, e lo conosco da una settimana). La mia domanda è: posso far funzionare l’impianto con una sola coppia di TX/RX posti dentro il parcheggio, dietro la sbarra? Sarebbe bello azionare la sbarra con il semplice pulsante per l’ingresso e contare l’ingresso di un auto e poi rilevarne l’uscita con l’infrarosso che fa contare un auto in meno… Io non sono in grado di poter apportare queste modifiche, non conosco bene il codice… Potresti aiutarmi, gentilmente? Grazie del tuo lavoro comunque, a presto!
Autore
Ciao Antonio,
lo sketch ed il progetto non è mio, tuttavia lascio all’autore la possibilità di leggere il tuo commento ed aiutarti.
Il mio consiglio, se vuoi terminare il tuo progetto, è di studiare quanti più tutorial possibili ed il mio corso on-line per capire come realizzare la tua versione del progetto.
Caro Mauro, dell’autore del progetto non si vede nemmeno l’ombra da dicembre 2014.. Potresti aiutarmi tu? grazie!
Autore
Ciao Antonio,
comprendo purtroppo non saprei come aiutarti, prova a descrivere l’errore preciso che riscontri e vedo se mi viene in mente qualche suggerimento.
Intanto ti suggerisco di leggere il codice e comprenderlo alla perfezione prima di utilizzarlo.
Arduino:1.6.4 (Windows 8.1), Scheda:”Arduino Uno”
sketch_jun20a:119: error: stray ‘\’ in program
sketch_jun20a:119: error: stray ‘\’ in program
sketch_jun20a:162: error: stray ‘\’ in program
sketch_jun20a:162: error: stray ‘\’ in program
sketch_jun20a:38: error: expected ‘,’ or ‘;’ before ‘int’
In file included from sketch_jun20a.ino:39:0:
C:\Users\Antonio\Desktop\arduino-1.6.4\hardware\arduino\avr\libraries\EEPROM/EEPROM.h:43:30: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
operator const uint8_t() const { return **this; }
^
C:\Users\Antonio\Desktop\arduino-1.6.4\hardware\arduino\avr\libraries\EEPROM/EEPROM.h:92:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
operator const int() const { return index; }
^
In file included from c:\users\antonio\desktop\arduino-1.6.4\hardware\tools\avr\avr\include\avr\io.h:99:0,
from c:\users\antonio\desktop\arduino-1.6.4\hardware\tools\avr\avr\include\avr\pgmspace.h:88,
from C:\Users\Antonio\Desktop\arduino-1.6.4\hardware\arduino\avr\cores\arduino/Arduino.h:28,
from sketch_jun20a.ino:17:
sketch_jun20a.ino: In function ‘void turn_off_IR()’:
sketch_jun20a:47: error: expression cannot be used as a function
sketch_jun20a.ino: In function ‘void setup()’:
sketch_jun20a:75: error: ‘verde’ was not declared in this scope
sketch_jun20a.ino: In function ‘void loop()’:
sketch_jun20a:97: error: ‘sezione’ was not declared in this scope
sketch_jun20a:97: error: expected ‘;’ before ‘ingresso’
sketch_jun20a:183: error: expected ‘}’ at end of input
stray ‘\’ in program
Non riesco nemmeno a insallare il programma orginiale privo di modifiche..
Autore
Ciao Antonio,
così a leggere il tuo errore mi concentrerei sulla line 38
sketch_jun20a:38: error: expected ‘,’ or ‘;’ before ‘int’
probabilmente nelle linee precedenti hai cancellato erroneamente qualche carattere che ha reso inutilizzabile lo sketch
Ciao mauro, purtroppo ho solo fatto copia ed incolla. Non riesco a farlo funzionare
Autore
Ciao Antonio,
verifica linea per linea se tutto è corretto o se evidenzi qualche anomalia che possiamo correggere.
“Per compilarlo se avete fatto copia&incolla dal sito dovete per prima cosa sostituire le virgolette a riga 119 e 162. Poi a riga 36 manca un punto-e-virgola alla fine (dopo -1), idem a riga 46. A riga 75 cambiate “verde” in “LEDverde”. Infine commentate (o cancellate) le righe 97 e 139 (“sezione bla bla”). Così mi compila… buon divertimento!”
Luca Dentella – dall’ottima pagina Fb ”Microcontrollori, Arduino, Atmel, Pic, MSP, ARM,Raspberry”.
Autore
Ciao Antonio,
grazie per le delucidazioni che sono sicuro in tanti apprezzeranno.
Non mi è chiara la citazione dell’amico Luca Dentella nell’ultima linea 🙂
mi servirebbe un programma di un parcheggio automatizzato realizzato con arduino, in grado di contare le macchine presenti con una capienza di 10 auto segnalando i posti liberi da semafori o semaforo verde all ingresso e quando e’ pieno con led rossi o un led rosso all’ ingresso.
Poi che debba conteggiare il tempo che rimane posteggiata ogni auto ,un ora equivale a un euro e all’ uscita per far alzare la sbarra bisogna digitare il numero del posteggio e deve comparire sul display il prezzo da pagare.
Grazie in anticipo, aiutooooooo.
Autore
Ciao Paolo,
bel progetto.
Non ho capito se lo stai già realizzando tu o se chiedi aiuto su commissione.
Ciao scusa ma non riesco a capire la funzione auto in e auto out….
A me segna solo le macchine in entrata e non quelle in uscita come si può risolvere?
Grazie
Autore
Ciao Giorgio,
lascio on-line il commento per lasciare che l’autore ti possa risponder.
Come suggerimento posso darti quello di utilizzare il monitor seriale, unito alle giuste linee di codice Serial.println(), per verificare i valori dei sensori e delle variabili di controllo.
Ciao Mauro, complimenti per il progetto davvero fatto molto bene. Vorrei prendere spunto da te, se mi puoi dare qualche spunto te ne sarei davvero molto grato.
Autore
Ciao Simone,
qualche info:
1. ti consiglio di non lasciare nei commenti la tua email, io la ricevo cmq dal campo apposito e non è visibile ad altri;
2. come hai letto nell’articolo c’è cscritto tutto quello che ti occorre, se hai dubbi su qualcosa che non comprendi chiedi e l’autore potrà darti supporto;
3. come hai letto nell’articolo il progetto non è mio ma di Piero
Volevo sapere in pratica i collegamenti che avresti fatto.. e la piastrina come facevi ad attaccarla. Grazie
Ciao mauro, il progetto e molto bello. Vorrei saper, per i parcheggi che materiale bisogan utilizzare?
Autore
Ciao Simone, lascio il commento on-line per l’autore del progetto.
Ciao Mauro vorrei sapere che programma ha installato Piero nell’arduino. Grazie
Autore
Ciao Matteo,
potrei non aver capito la domanda .. intendi lo sketch ?? è quello nell’articolo come hai letto.
Ciao Mauro volevo sapere se il tsal 6200 era un diodo emettitore infrarosso. Grazie
Autore
Ciao Maicol,
non lo conosco, hai cercato il datasheet ? ti servirà conoscere anche la frequenza a cui emette l?IR per acquistare un opportuno ricevitore.
Ciao, vorrei sapere per il rivestimento esterno, come funziona?
Autore
Ciao Simone,
lascio il commento on-line perché l’autore possa risponderti.
Se al posto della coppia di tx-rx ir metto il sensore HC-SR04 come modifico il programma?
Autore
Ciao Francesco,
dovrai riscrivere la logica che usa un tipo di sensore differente.
Ma per le sbarre come l’hai collegato al servomotore? E poi il servo motore ha solo due stati (basso o alto)di default o l’hai programmato?
Autore
Ciao Studente99,
lascio il tuo commento on-line perché l’autore possa risponderti.
Ti invito a leggere bene l’articolo e comprendere il lavoro eseguito in attesa della risposta.
Studiando la descrizione del progetto e lo sketch troverai alcune risposte già scritte.
cosa e vecchio_val nel programma?
Autore
Ciao Filippo,
non ho scritto io lo sketch ma a occhio direi che serve a memorizzare un valore di cui devi tener traccia in una valutazione successiva di confronto.
Ciao,
tutto il sistema che prezzo ha indicativamente ? Software + hardware
grazie mille
RS9
Autore
Ciao Roberto,
non penso sia in vendita. Lascio il tuo commento on-line perché possa intervenire l’autore del progetto.
ciao , ho realizzato il progetto in una struttura leggermente più grande , all’avvio si accende il led verde ma quando vado per interrompere il fascio luminoso della prima coppia tx rx ir non succede nulla la sbarra non si alza , inoltre nel monitor compare 188 . Il circuito rimane passivo non riesco a capire quale sia il problema .
grazie dell’attenzione , attendo risposta
Autore
Ciao Giuseppe,
lascio il tuo commento online perché l’autore possa aiutarti.
Intanto ti invito a testare con il monitor seriale i singoli componenti per escludere problemi di collegamento o malfunzionamento degli stessi.
Salve vorrei sapere se sarebbe possibile avere un schema di montaggio più chiaro. Grazie in atipico
Autore
Ciao Stefano,
a me sembra molto chiaro ed esaustivo, quale schema non ti è chiaro?
dopo una attenta analisi sono riuscito a comprendere lo schema.
Autore
Ottimo Stefano,
sono contento.
salve, senti vorrei sapere se posso avere lo schema del parcheggio per farlo su tinkercad perché non capisco quella che ce sul sito grazie
Autore
Ciao Bassirou,
purtroppo non essendo un mio progetto non possiedo lo schema visuale del progetto, lascio il commento perché l’autore ti possa aiutare.
Se posso darti un suggerimento ti consiglio di comprendere il concetto che ha usato per la realizzazione e riprodurlo su tinkercad con componenti esistenti, probabilmente non ci sono esattamente tutti quelli usati in questo progetto.