Pages: [1]   Go Down
Author Topic: fotocellule e arduino  (Read 771 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 31
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

o provato a costruire delle fotocellule tipo cancello utilizzando un emettitore e ricevitore ad infrarossi 950nm il problema e che il sensore risente dellla luce ambientale del sole creando interferenze come fanno i cancelli elettrici ad non avere questi problemi?
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3267
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao, innanzi tutto il vetrino rossoscuro che tutti i sensori possiedono sono dei filtri i quali tagliano una buona parte della luce infrarossa di disturbo, poi l'elettronica preleva un campo di frequenze da X a Y

ciao
« Last Edit: April 25, 2012, 06:29:59 am by pablos » Logged

no comment

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21269
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Usa un TSOPxx38 (ricevitore telecomando a infrarossi) e un emettitore IR a 38Khz.
Circuito: come http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
Il pin di uscita segnale 38kHz é il pin 11 e non puó essere modificato a causa uso del rispettivo timer.

Code:
#define RXB 14
#define TX 11
boolean transmitting_IR; //transmission flag

void turn_off_IR () //spegne segnale 38kHz su pin 11.
{
  TCCR2A = 0; // Disconnect PWM
  TCCR2B = 0; // Stops the timer
  OCR2A = 0;  // No timer top
  digitalWrite(11, LOW);                // Ensure output is off  
  transmitting_IR = false;
}

void turn_on_IR ()  // accende segnale 38kHz su pin 11.
{
  //   Set up Timer2 (which can be connected to pins 3 and 11)
  //   For full details, see:
  //   arduino.cc/en/Tutorial/SecretsOfArduinoPWM
  //   The syntax here has me baffled, but the patterns of usage
  //   are clear if you look at the ATMega328 diagrams.
  //   _BV appears to stand for 'bit value'
  //   Different bits need to be set to control each timer
  //   Refer to diagrams for clarity

  TCCR2A = _BV(WGM21) | _BV(COM2A0); // This mode toggles output once per timer cycle
  TCCR2B = _BV(CS20);  // Do not scale the clock down - use 16 MHz timer rate.
  OCR2A = 210; // Divide sys. clock by 210, 1/2 cycle = 76 khz, 1 cycle = 38 khz
  transmitting_IR = true;
}


void detectIR()
{
    digitalwrite(13, digitalRead(RXB));  
// il LED su Pin 13 si accende quando il fascio luminoso della fotocellula non é interotta
}


void setup(){  
  pinMode(TX, OUTPUT);
  pinMode(RXB, INPUT);
  pinMode(13,OUTPUT);
  turn_on_IR();
  delay(100);
}

void loop(){
  detectIR(); // search for IR
  delay(50);  
}

Ciao Uwe
« Last Edit: May 01, 2012, 06:00:21 am by uwefed » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 31
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

molte grazie, il tsop2238 non sapevo neanche d'averlo, sarà la fortuna.
Logged

Pages: [1]   Go Up
Jump to: