Show Posts
Pages: [1] 2 3 ... 5
1  International / Software / Re: Invio stringa con moduli tx 433 Mhz on: September 28, 2013, 11:13:11 am
Per i moduli prendi quelli ben documentati che trovi sul link( potresti considerare anche bluetooth)
Qui vedi la lista completa e sito serio: https://www.sparkfun.com/pages/Wireless_Guide

Per vedere se non ci sia problema a livello di codice, aumenta intanto il voltaggio da dare alla tx..
2  International / Software / Re: Invio stringa con moduli tx 433 Mhz on: September 28, 2013, 11:00:58 am
I moduli vedo che sono quelli piú economici classici.
A quale distanza tieni i due? Considera che con pareti di cemento( il cemento ferma in modo elevato le radiofrequenze come anche il wifi) che fanno da schermo inviare quella stringa senza errori e senza elevare il voltaggio della tx é quasi un'impresa.. (La tx  puó arrivare fino a 12v)
Ps: non avevo letto bene.. Devi montare intanto l'antenna anche sulla ricevente stessa lunghezza.
3  International / Software / Re: Invio stringa con moduli tx 433 Mhz on: September 28, 2013, 10:44:03 am
Ciao
Dovresti indicare i moduli 433mhz cosi intanto vediamo a quanti kb/s inviano i dati. A quanti volt alimenti la trasmittente?
Se i dati si "perdono" potrebbe anche essere il lato antenna che non é ben perfezionato( dovresti usare un filo da 17cm sia su lato ricevente che trasmittente)
Altra cosa :
La F e la I te la salta sempre oppure salta a caso alcuni valori? Perché se salta sempre e  solo loro due,potrebbe anche essere che quei sensori (tipo sensori temperatura) richiedono meno di 2000 bit per second quindi  dovresti abbassare il bitrate.
Vedi anche se questo post ti é utile: http://forum.arduino.cc/index.php?topic=22052.0

Con dispositivi fissi l'antenna ideale che ti permette di aumentare il guadagno anche di 5/6 volte ,a paritá di voltaggio, é questa: http://bsrg.org/aatn/hawgant1.gif
4  International / Software / Re: Barriera infrarossi a 38khz senza modulante on: September 27, 2013, 01:01:26 pm
giustamente hai ragione.Grazie Leo..vedo di ripensare il ciclo.

Alla fine ho risolto con una semplice astuzia:

Code:
durata = pulseIn(ricevitoreIR,LOW);
   int i=LOW;
l'if seguente per forza di cose mi viene Vero.

anche se avrei preferito arrivarci con una logica di ciclo if o for o while o altro
5  International / Software / Barriera infrarossi a 38khz senza modulante on: September 27, 2013, 12:06:44 pm
Ciao a tutti smiley-cool

con 3 IR e un Tsop da 38 khz ho realizzato una barriera infrarossi con una portata di circa 5 metri(anche di più al buoio).Devo dire che dal punto di vista hardware tutto risponde molto bene.
la portante da 38 khz è stata realizzata con un ne555.
Siccome non ho una modulante ma solo,appunto, un "treno continuo" da 38khz (portante), il ricevitore è sensibile anche a tutte le interferenze di altri segnali ir a 38khz modulati come appunto tutti i telecomandi in casa..
Cosi senza realizzare un segnale modulante pensavo di risolvere la cosa a livello software.

Anzitutto il ricevitore Tsop da sempre segnale HIGH, mentre quando viene irradiato da una frequenza a 38Khz restituisce segnale LOW continui per un tot di tempo fino a tornare ad High anche se gli IR continuano ad  irradiarlo..

Ho pensato quindi di usare  il comando "pulseIn" (http://arduino.cc/en/Reference/PulseIn) in modo da calcolare il tempo in microsencondi durante il quale il segnale si trova in LOW.
Dal seriale ho notato,come era prevedibile, che in un segnale modulato qualsiasi solitamente il segnale LOW resta per brevi istanti (massimo 600 microsecondi) mentre con il "treno" della portante fissa arriva anche a 10.000 MicroS e ben oltre...
Mi sono dunque chiesto...basta settare che il mio attuattore (in questo caso il led) si accenda se la durata dell'impulso LOW è superiore a 600 nel mio caso.. ma non è andata come speravo: Con l'esempio sotto il led non si accende ne con un segnale modulato ne con barriera..se invece setto una durata inferiore a 600 mi funziona giustamente solo se riceve segnale modulato e non per la barriera..strano

Questo è il codice:

Code:
//BARRIERA INFRAROSSO   ----> >4 metri (3 LED IR 940 NM)

int rosso = 13;
int ricevitoreIR = 2;
unsigned long durata;
unsigned long frequenza;
 
void setup() {
  pinMode(rosso,OUTPUT);
  pinMode(ricevitoreIR,INPUT);
  Serial.begin(9600);
}

void loop() {
  
  durata = pulseIn(ricevitoreIR,LOW);
  
  Serial.println(durata);
  
  int i = digitalRead (2);
 
  if ((durata>660)& (i==0))
  {
  digitalWrite (rosso,HIGH);
  delay (500);
  digitalWrite (rosso,LOW);
  delay (500);
  digitalWrite (rosso,HIGH);
  delay (500);
  digitalWrite (rosso,LOW);
  }
  
}

6  International / Software / Re: tone() insieme alle librerie Irremote e servo [RISOLTO] on: August 31, 2013, 03:51:09 am
Grazie Leo..quando l'ho aperto ho visto infatti.
7  International / Software / Re: tone() insieme alle librerie Irremote e servo (RISOLTO) on: August 30, 2013, 05:26:35 pm
Stranamente la remoteint mi viene inclusa automaticamente quando aggiungo la libreria irremote...
Grazie Paolo!
OT: per ringraziarvi segnalo questa beta di  simulatore di galleria del vento di Autodesk gratuito fino a fine anno
http://labs.autodesk.com/utilities/falcon

Innovativo e semplice da usare con profili propri.

METODO ALTERNATIVO senza la funzione tone() :

Successivamente all'euforia mi sono accorto all'atto pratico che comunque persiste un conflitto in quanto se si è nella condizione di usare insieme servomotori,funzioni tone() e altro che utilizza stessi timer di almeno uno dei due ,come ad esempio IRremote si è sempre in conflitto in un modo e nell'altro.. (almeno che non si usi arduino mega e si assegni il timer5 a IRremote che sembra funzionare)

Ho trovato questo codice che permette di usare l'altoparlante producendo melodie senza la funzione tone()
link: http://letsmakerobots.com/node/34477

in quest'esempio viene utilizzato un motore dc per produrre suono grazie alle proprietà dei magneti interni che tutti i dc possiedono
Il magnete permanente è nel corpo, l'elettromagnete è sul rotore. Il driver del motore (ponte"H" ) fa da amplificatore.

Il vantaggio è che lascia appunto il timer2 libero da usare per altri scopi.
Riadattandolo al mio caso ha funzionato pefettamente!
8  International / Software / Re: tone() insieme alle librerie Irremote e servo on: August 30, 2013, 05:19:41 pm
LUCAAAAA grazie!
Ha funzionato. smiley-draw smiley-draw
Non bisognava includere la libreria <IRremoteint.h>
Prossima volta cerco meglio sul forum..lezione imparata smiley
9  International / Software / Re: tone() insieme alle librerie Irremote e servo on: August 30, 2013, 04:20:31 pm
si.
ecco il codice completo:
Code:
// LIBRERIE

#include <Servo.h>
#include <IRremote.h>
#include <IRremoteInt.h>

// DICHIARAZIONI
int freq = 1047;
int pinbuzz = 8;

int RECV_PIN = 11; // ricevitore IR
IRrecv irrecv(RECV_PIN);
decode_results results;

Servo ServoMc;
int zero = 60; //posizione  1°
int media = 90; //posizione 2° finale

int pause=200;
int scatto=737;


void setup()
{
 ServoMc.attach(9);
Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}
 
void loop()
{
  if (irrecv.decode(&results)) {
   Serial.println(results.value,DEC);
   irrecv.resume(); // Ricevi prossimo valore
    
if (results.value == 52122){
  ServoMc.write(zero);
  delay(scatto);
   ServoMc.write(media);
   delay(scatto);
   tone(pinbuzz, freq);
  
    irrecv.resume(); // Receive the next value


Vedo ora che anche se cancello tone() il codice da errore lo stesso

precisamente cosi':
Code:
IRremote\IRremote.cpp.o: In function `MATCH(int, int)':
/IRremoteInt.h:179: multiple definition of `MATCH(int, int)'
ScattoIRSound.cpp.o:C:\Program Files (x86)\Arduino\libraries\IRremote/IRremoteInt.h:179: first defined here
IRremote\IRremote.cpp.o: In function `MATCH_MARK(int, int)':
/IRremoteInt.h:180: multiple definition of `MATCH_MARK(int, int)'
ScattoIRSound.cpp.o:C:\Program Files (x86)\Arduino\libraries\IRremote/IRremoteInt.h:180: first defined here
IRremote\IRremote.cpp.o: In function `MATCH_SPACE(int, int)':
/IRremoteInt.h:181: multiple definition of `MATCH_SPACE(int, int)'
ScattoIRSound.cpp.o:C:\Program Files (x86)\Arduino\libraries\IRremote/IRremoteInt.h:181: first defined here
10  International / Software / tone() insieme alle librerie Irremote e servo [RISOLTO] on: August 30, 2013, 01:01:00 pm
Sto cercando di far funzionare insieme un cicalino, un servo e un sensore ir che attiva esso.
siccome penso stiano usando lo stesso timer, volevo capire intanto se è fattibile utilizzarli tutti insieme modificando da IRremoteint.h  l'assegnazione dei timer ma non ho ben compreso come..

Per ora ho assegnato:

servo su pin 9
cicalino su pin 8
e sensore ir su pin 11

e gli errori  di compilazioni sono a gogo smiley

Code:
IRremote\IRremote.cpp.o: In function `MATCH(int, int)':
/IRremoteInt.h:179: multiple definition of `MATCH(int, int)'
ScattoIRSound.cpp.o:C:\Program Files (x86)\Arduino\libraries\IRremote/IRremoteInt.h:179: first defined here
IRremote\IRremote.cpp.o: In function `MATCH_MARK(int, int)':
/IRremoteInt.h:180: multiple definition of `MATCH_MARK(int, int)'
ScattoIRSound.cpp.o:C:\Program Files (x86)\Arduino\libraries\IRremote/IRremoteInt.h:180: first defined here
IRremote\IRremote.cpp.o: In function `MATCH_SPACE(int, int)':
/IRremoteInt.h:181: multiple definition of `MATCH_SPACE(int, int)'
ScattoIRSound.cpp.o:C:\Program Files (x86)\Arduino\libraries\IRremote/IRremoteInt.h:181: first defined here
core.a(Tone.cpp.o): In function `__vector_7':
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Tone.cpp:535: multiple definition of `__vector_7'
IRremote\IRremote.cpp.o:C:\Program Files (x86)\Arduino\libraries\IRremote/IRremote.cpp:311: first defined here



sulla libreria Irremoteint.h trovo questo:
Code:
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  //#define IR_USE_TIMER1   // tx = pin 9
  #define IR_USE_TIMER2     // tx = pin 3
#endif

grazie intanto
11  International / Software / Re: Interrompere una funzione e richiamarne un'altra on: August 21, 2013, 08:54:36 am
grazie Leo.. ho modificato il titolo intanto.

Speriamo di capire bene questa millis() ..leggo oggi in serata.
12  International / Software / Interrompere una funzione e richiamarne un'altra on: August 21, 2013, 08:42:40 am
ciao!,
stavo cercando di capire come interrompere un'istruzione (nel mio caso sto realizzando una semplice dissolvenza con dei led rgb) per richiamarne un'altra quando premo un pulsante da telecomando ir (usando la libreria IRremote)
quindi sono a questo punto:

Ho  la mia istruzione di fade:
Code:
void loop (){


 if (results.value == 52125) //primo if ciclo
{
   digitalWrite (verde,HIGH);
   digitalWrite (rosso,LOW);
   digitalWrite (blu,HIGH);
 }

if (results.value == 51994){   //secondo if ciclo
    
     digitalWrite (verde,HIGH); //rosso
     digitalWrite (rosso,LOW);
     digitalWrite (blu,HIGH);
  
   delay (100) ;
    
     digitalWrite (verde,LOW); //giallo
     digitalWrite (rosso,LOW);
     digitalWrite (blu,HIGH);
  
    delay (100) ;
    
   digitalWrite (verde,HIGH); //blu
   digitalWrite (rosso,HIGH);
   digitalWrite (blu,LOW);
  
   delay (100) ;
    
   digitalWrite (verde,LOW);// verde
   digitalWrite (rosso,HIGH);
   digitalWrite (blu,HIGH);
  
   delay (100) ;
    
 irrecv.resume(); // ricevo il prossimo valore
}

Durante la funzione del secondo ciclo if (quella di lampeggio) vorrei in qualsiasi momento passare ad un'altra funzione (nel mio caso è un semplice if che richiama l'accensione di un altro led, E' il primo if ad inizio codice).
Ora come ora riesco solo a farlo se aspetto la fine del ciclo di fade.

Non capisco come dovrei impostare il codice
13  International / Hardware / Re: Fotocellula per esterni economica on: August 05, 2013, 04:47:32 am
Ahah ottimi consigli come sempre!
Mi metto all'opera e faró sapere.
14  International / Hardware / Re: Fotocellula per esterni economica on: August 04, 2013, 03:51:04 pm
Grazie cyber, quel sensore peró é utile se lo si posiziona in alto (magari sopra un portone) e grazie ai suoi 180 gradi fa il suo ottimo lavoro..
Io peró..volevo  un sensore tipo "allarme da banca smiley ", cioé appena il fascio infrarosso(posto su due pilastri di questo sentiero), é interrotto da una persona o auto mi si attiva a 50 metri un attuatore o lampione o altro..
Volevo peró lasciare stare per ora qualcosa tipo laser, e capire invece se con componentistica che ho giá in casa (ne555 ,led Ir 5mm e sensore tsop) potevo realizzare qualcosa del genere anche all'aperto in piena luce solare.
pensavo che dato che i sensori tsop sono progettati per assorbire solo l'infrarosso con una frequenza stabilita non dovrei avere grossi problemi.. Poi non saprei se come avete giá accennato ci sono soluzioni piú economiche o pro:)

15  International / Hardware / Fotocellula per esterni economica on: August 04, 2013, 06:33:40 am
Ciao ragazzi,

Volevo realizzare una fotocellula per esterni.. Mi servirebbe per accendere un lampione a distanza, superato un vicolo di larghezza 5/6 metri. Il viale é in piena luce..

 Quindi avevo pensato ad un Led IR 940nm (da 5mm,mcd considerevoli e angolatura 15/20 gradi) e un rilevatore tsop tipo Vishay TSOP4038 (mi sembra sia uno dei migliori) adatto per la modulazione a 38 Kilohertz e ben schermato contro le altre lunghezze d'onda.

Per il prototipo,pensavo prima di procedere con arduino poi peró vorrei utilizzare un 555.. Pensate sia fattibile?
Esistono schemi giá collaudati per quest'ultimo?
Grazie

Pages: [1] 2 3 ... 5