Ciao a tutta la community di arduino
CHI SONO:
Sono uno sviluppatore web che per motivi prettamente economici ripara smartphone e tablet a casa...
Conosco molti linguaggi di programmazione avendo studiato informatica molti anni.
In elettronica sono scarso e ignorante purtroppo(ma sto rimediando in fretta); sono quasi sicuro di conoscere la legge di ohm studiata più di un decennio fa all' ITIS, ma non vado oltre(per il momento).
COSA VORREI SVILUPPARE:
Un cliente 15 giorni fa mi ha chiesto se fossi in grado di realizzare un sistema di cronometraggio con fotocellule wireless che potessero essere spostate rapidamente a seconda dei punti di partenza e di arrivo sempre variabili.
Ho risposto certo!!! Dopodiché sono andato a casa per chiedere a google un modo per autoprodurlo...e google ha risposto...ARDUINO!
Quindi ho comprato lo starter kit italiano e in una settimana mi sono mangiato il libro con tutti i progettini e ho imparato le basi.
COSA HO SVILUPPATO
In questi ultimi giorni mi sono dedicato allo sviluppo di questo sistema e ho realizzato un circuito del quale vado abbastanza fiero, considerando le mie nulle competenze elettroniche.In allegato riporto schema elettrico, realizzato con fritzing(fantastico software anche se con alcuni bug).
IL CODICE
Il codice che ho sviluppato per questo progetto funziona correttamente ed è testato sul mio circuito. Se qualcuno ha delle correzioni o dei miglioramenti però sono sempre ben accetti
#include <LiquidCrystal.h>
#include <StopWatch.h>
LiquidCrystal lcd(12,11,5,4,3,2);
StopWatch MySW;
int button = 0;
int m = 0;
int s = 0;
int ms = 0;
long int rest;
int FotoStart = 6;
int FotoStop = 7;
int TimerStart = 8;
int TimerStop = 9;
int TimerReset = 10;
void setup()
{
lcd.begin(16,2);
lcd.print("CRONOMETRO...");
pinMode(FotoStart,INPUT);
pinMode(FotoStop,INPUT);
pinMode(TimerStart,INPUT);
pinMode(TimerStop,INPUT);
pinMode(TimerReset,INPUT);
}
void loop()
{
if (digitalRead(FotoStart) == 1){
button = 1;
}
if (digitalRead(FotoStop) == 1){
button = 2;
}
if (digitalRead(TimerStart) == 1){
button = 3;
}
if (digitalRead(TimerStop) == 1){
button = 4;
}
if (digitalRead(TimerReset) == 1){
button = 5;
}
switch(button)
{
case 1:
lcd.setCursor(0,0);
lcd.print("STARTED...");
lcd.setCursor(0,1);
if(!MySW.isRunning()){
MySW.start();
}
break;
case 2:
lcd.setCursor(0,0);
lcd.print("STOPPED...");
lcd.setCursor(0,1);
if(MySW.isRunning()){
MySW.stop();
}
break;
case 3:
lcd.setCursor(0,0);
lcd.print("STARTED...");
lcd.setCursor(0,1);
if(!MySW.isRunning()){
MySW.start();
}
break;
case 4:
if(MySW.isRunning()){
lcd.setCursor(0,0);
lcd.print("STOPPED...");
lcd.setCursor(0,1);
MySW.stop();
}
break;
case 5:
MySW.reset();
break;
default:
Serial.println("Waiting Input...");
delay(10);
break;
}
lcd.setCursor(0,1);
lcd.print("TIME: ");
m = (long int)MySW.elapsed()/ 60000;
rest = MySW.elapsed()% 60000;
s = (long int)rest/ 1000;
ms = rest% 1000;
lcd.print(m);
lcd.print(".");
if(s<10){
lcd.print("0");
}
lcd.print(s);
lcd.print(".");
if (ms == 0)
lcd.print("00");
else if (ms < 10)
lcd.print("0");
lcd.print(ms);
if(button == 5){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("READY...");
lcd.setCursor(0,1);
lcd.print("TIME: ");
lcd.print(MySW.elapsed());
button = 0;
}
}
COMPONENTI UTILIZZATI
1 Arduino Uno;
3 pulsanti (Start,Stop,Reset);
3 Resistenze da 10K ohm;
2 Potenziometri(trovati nello starter kit)(contrasto e luminosità);
1 Display LCD 16x2 (trovato nello starter kit);
2 Coppie di fotocellule;
5 Batterie 9V;
LE DOMANDE
- Per eliminare le connessioni via cavo delle Fotocellule RX cosa devo usare?
Ho studiato molto in questi giorni cercando su google, forums, e sono anche andato al fablab di garbatella a roma :D...Ma ho le idee confuse e non capisco quale sia meglio utilizzare tra Bluetooth, WiFi, Radio per compiere questa task.
2.Come posso alimentare le fotocellule RX da 12/24V con delle batterie?(ideale una batteria da 12v ma non ne trovo possibile?!)
Ho notato che con la batteria da 9V i relè della fotocellula RX non si attivano e serve necessariamente un alimentazione da 12V. Mentre la fotocellula TX con la batteria da 9V funziona molto bene. - posso collegare questi moduli radio direttamente sull'uscita del relè della fotocellula RX?
Volendo utilizzare dei moduli radio mi chiedevo se fosse necessario utilizzare un microcontrollore per collegarli alle fotocellule RX e farli comunicare con lo StopWatch arduino principale dove installerei il modulo radio RX
Spero di essere stato chiaro e non troppo prolisso, e di poter aiutare anche qualcuno che stia sviluppando qualcosa di simile e sia alle prime armi come me.
Grazie ragazzi!