Visualizza messaggio singolo
Vecchio 04 dicembre 15, 14:55   #18 (permalink)  Top
CarloRoma63
User
 
L'avatar di CarloRoma63
 
Data registr.: 08-08-2011
Residenza: Roma
Messaggi: 5.806
Citazione:
Originalmente inviato da ElNonino Visualizza messaggio
Che dire, da volerlo fare con 3 componenti ad un Arduino + 5 componenti, il passo è bello lungo....

Tra un po troveremo Arduino anche nel girarrosto assieme al prezzemolo.

Tu non lo sai, ma già c'è!!!!

Comunque ho buttato giù un po di codice, giusto come punto di partenza.

Carlo

// ingressi canali radio
byte pinCH1 = 2; // canale x ricevente
unsigned int durationCH1;

// Uscite digitali
byte pinScatto = 6; // comando fotocamera

// soglia di comando dei canali radio
const unsigned long sogliaCH1a = 1700; // Soglia tra posizione 1 e 2
const unsigned long sogliaCH1b = 1200; // Soglia tra posizione 0 e 1

// variabili di appoggio
int valInterruttore = 0;
int valAzione = 0;

void setup()
{
// definisco i canai di input dalla radio
pinMode(pinCH1, INPUT); // canale x ricevente

}

void loop()
{
// leggo i canali radio
durationCH1 = pulseIn(pinCH1, HIGH);

// quì gestisco il valore letto.
// Quello che segue è solo un esempio di come si può fare
// in base allo stato dell'interruttore (ed eventualmente della sua storia)
// devi definire le azioni da fare
// impostando correttamente la variabile valAzione
valInterruttore = 0;
valAzione = 0; // nessun contatto
if (durationCH1>sogliaCH1b) {
valInterruttore = 1;
valAzione = 1; // contatto breve
};
if (durationCH1>sogliaCH1a) {
valInterruttore = 2;
valAzione = 2; // contatto lungo
};

switch (valInterruttore) {
case 0: // non faccio nulla
break;
case 1: // contatto breve
analogWrite(pinScatto, 255); //chiudo il contatto
delay(100); // aspetto 100 millisecondi
analogWrite(pinScatto, 255); // riapro il contatto
break;
case 2:
analogWrite(pinScatto, 255); //chiudo il contatto
delay(700); // aspetto 700 millisecondi
analogWrite(pinScatto, 255); // riapro il contatto
break;
// default:
// if nothing else matches, do the default
// default is optional
};
delay(100); //rallento il ciclo, aspettando 100 millisecondi tra una lettura e la successiva
}
__________________
Dai un pesce ad un uomo e lo avrai sfamato per un giorno, insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
I miei modelli: http://www.youtube.com/results?search_query=carloroma63
CarloRoma63 non è collegato   Rispondi citando