Go Down

Topic: Aiuto per modulo 433Mhz [RISOLTO] (Read 905 times) previous topic - next topic

parapaolo

Mar 05, 2013, 01:55 pm Last Edit: Mar 05, 2013, 10:40 pm by parapaolo Reason: 1
All0ra vi spiego cosa vorrei fare, vorrei tramite un modulo a 433Mhz e un telecomando aprire un cancello con serratura elettrica a 12V.

Ma partiamo con calma dato che non ho esperienza alcuna sia sul modulo, che sui relè pilotati, ora vorrei andare per gradi questo è quanto ho ora:


Ora il codice di base è questo:
Code: [Select]
void setup() {
 Serial.begin(9600);
}

void loop() {
 int sensorValue = analogRead(A0);
 int sensorValue2 = analogRead(A1);
 int sensorValue3 = analogRead(A2);
 int sensorValue4 = analogRead(A3);
 Serial.print(sensorValue, DEC);
 Serial.print(";;;");
 Serial.print(sensorValue2, DEC);
 Serial.print(";;;");
 Serial.print(sensorValue3, DEC);
 Serial.print(";;;");
 Serial.print(sensorValue4, DEC);
 Serial.print(";;;");
 delay(500);
 }


Ora alla pressione dei 4 tasti del telecomando viene rilevato un valore decimale 1024 mentre altrimwenti il valore che scorre è zero.

Scusate per la domanda cretina ma sono alle prime armi.
Se io ora volessi prendere quel valore compararlo e (per ora far accendere un led) come dovrei intervenire sul codice?
Ho cercato in rete per capire con un codice commentato come esmpio ma non so bene come farlo con il codice.

In poche parole dovrei inserire un un controllo decimale del valore riscontrato e se = a 1024 dovrei in viare il comando di accensione del led per un periodo stabilito dal delay
facile a pensare ma prima di fare danni inserendo istruzioni sbagliate volevo avere un appoggio dove capire come fare in maniera tangibile, grazie.

Brunello

Non capisco perche' tu legga in analogico quelli che sono valori digitali.

Quella e' la classica accoppiata PT2262-PT2272, quando premi un tasto, il pin corrispondente ( sul ricevitore ) va' a livello High.

Non devi fare altro che leggere i vari pin connessi ( con il digitalread ) e vedere che tasto e' stato premuto



parapaolo

#2
Mar 05, 2013, 02:30 pm Last Edit: Mar 05, 2013, 03:17 pm by parapaolo Reason: 1

Non capisco perche' tu legga in analogico quelli che sono valori digitali.

Quella e' la classica accoppiata PT2262-PT2272, quando premi un tasto, il pin corrispondente ( sul ricevitore ) va' a livello High.

Non devi fare altro che leggere i vari pin connessi ( con il digitalread ) e vedere che tasto e' stato premuto





Scusa non ho capito ho trovato solo quel codice in allegato ma non specifica niente di cosa sia, che intendi che riconosce il tasto? Cosa in tendi il pin corrispondente va a livello High quali sono i pin corrispondenti ?

io ho collegato solo gli analogici per rilevare i segnali dal A0 a A4
Intendi dire che i pin a1-a2-a3-a4 vanno in high?

nid69ita

#3
Mar 05, 2013, 05:52 pm Last Edit: Mar 05, 2013, 05:58 pm by nid69ita Reason: 1
Intende che non devi collegare A0-A5 ma collegare quelli digitali, che sò 8-9-10-11-12
Poi nel codice cambi
  int sensorValue = analogRead(A0);
  int sensorValue2 = analogRead(A1);
  int sensorValue3 = analogRead(A2);
  int sensorValue4 = analogRead(A3);
con
  int sensorValue = digitalRead(8);
  int sensorValue2 = digitalRead(9);
  int sensorValue3 = digitalRead(10);
  int sensorValue4 = digitalRead(11);
  int sensorValue5 = digitalRead(12);

poi i collegamento son 5, perchè quello sketch ha solo A0->A3 (4 collegamenti) ?

qual codice ti stamperà 0 o 1 se premi un tasto invece di 0 o 1024.
potresti ad esempio fare
if(sensorValue==HIGH)
{ Serial.println("hai premuto tasto A");  // suppongo primo pin=tasto A
}

Se invece lasci la lettura sugli analogici fai
if(sensorValue==1024)
{ Serial.println("hai premuto tasto A");  // suppongo A0 collgato a tasto A
}

in quell'if potresti accendere un led collegato al pin 13
(non chiedere come accendere un led con Arduino altrimenti ti mozzichiamo un orecchio, cerca nel forum)

Ma tu che devi fare? verificare la sequenza dei tasti premuti (password) e se okay, allora apri il cancello?
che sò, premuto A-C-D-A   okay allora apro cancello?

my name is IGOR, not AIGOR

parapaolo

Io vorrei fare semplice premi a apro il cancello

nid69ita

if(sensorValue==HIGH)    //oppure sensorValue==1024)
{ // codice che attiva un pin collegato ad un relè a 12V che apre il cancello
}

se il primo pin = A, secondo = B, etc.

per collegare un relè cerca nel forum o in internet, è pieno di esempi.
Io ho comprato questo su ebay dall'UK
http://cgi.ebay.it/ws/eBayISAPI.dll?ViewItem&item=130842693058#ht_1470wt_1188
ed è semplice da usare. Colleghi 5V, GND e che sò il pin 4. Attivi il pin 4 da Arduino e il relè si eccita.
nel setup  ->   pinMode(4, OUTPUT);
nel loop ->
if(sensorValue==HIGH)
{ digitalWrite(LEDPIN, HIGH);
}

Magari per la parte elettrica qualcuno di + esperto può darti dritte migliori di me.

(Anche perchè poi il cancello si deve anche richiudere, penso)
my name is IGOR, not AIGOR

Brunello

Vedo che ti hanno gia' risposto..

Spiegami una cosa... perche' un arduino per aprire un cancello ?
(a proposito.. e' un cancelletto di cui devi solo gestire la serratura elettrica ? )

Perche' se al modulino che hai, colleghi un rele', hai gia' fatto l'apricancello


parapaolo

:) Grazie a tutti sono riuscito a pilotare 2 relè facendo come mi avete detto XD

Go Up