Cerca codice

Codice Arduino, trasmettitore video e sensore laser

Codice Arduino, trasmettitore video e sensore laser

In questo tutorial impareremo come usare un trasmettitore e un ricevitore laser per rilevare un fascio laser e attivare un cicalino o un'altra azione. Questa configurazione può essere utilizzata in varie applicazioni, inclusi automazione e robotica. Al termine del tutorial saprai come collegare i componenti e scrivere il codice Arduino per far funzionare tutto senza problemi.

Laster RX or receiver module
Laster TX or transmitter module

Durante il tutorial discuteremo i componenti chiave coinvolti in questo progetto, inclusi come collegarli correttamente e come funziona il codice. Guarda il video per una spiegazione dettagliata (nel video alle 02:00).

Hardware spiegato

I componenti principali di questo progetto includono un trasmettitore laser, un ricevitore laser e un buzzer. Il trasmettitore laser emette un fascio di luce, mentre il ricevitore rileva questo fascio. Quando il fascio viene interrotto, il ricevitore invia un segnale all'Arduino, che può quindi attivare il buzzer o eseguire un'altra azione.

Il modulo trasmettitore funziona a 5 volt e include una resistenza per limitare la corrente. Il modulo ricevitore può essere collegato a un filo esterno per una maggiore flessibilità nel posizionamento. Il cicalino è anch'esso alimentato a 5 volt e ha due pin: uno per il positivo e uno per la massa.

Dettagli della scheda tecnica

ProduttoreSconosciuto
Numero di parteModulo trasmettitore/ricevitore laser
Tensione di esercizio5 V
Consumo attuale5 mA tipico.
Tipo di outputSegnale digitale
Portata di rilevamentoVaria a seconda dell'ambiente
DimensioneTrasmettitore: 14.8 mm x 18.8 mm, Ricevitore: 15.4 mm x 23.4 mm

  • Garantire un'alimentazione con la tensione corretta per evitare danni.
  • Usare fili corti per ridurre al minimo la perdita di segnale.
  • Mantieni il ricevitore allineato con il trasmettitore per una rilevazione affidabile.
  • Testa la configurazione in diverse condizioni di illuminazione.
  • Fai attenzione ai riflessi che potrebbero provocare falsi rilevamenti.

Istruzioni di cablaggio

Arduion wiring laser Transmitter and receiver
Arduion wiring laser Transmitter and receiver

Per collegare il trasmettitore laser, collega il suo pin di massa al GND dell'Arduino e il pin positivo al 5V dell'Arduino. Il pin centrale del trasmettitore non viene utilizzato. Per il ricevitore laser, collega il suo pin di massa al GND, il pin positivo al 5V e il pin di uscita al pin dell'Arduino2. Questo pin di uscita leggerà il segnale dal ricevitore laser.

Successivamente, collega il buzzer: il suo piedino più lungo (positivo) dovrebbe essere collegato al pin dell'Arduino8, mentre il pin più corto (massa) è collegato a GND. Assicurati che tutte le connessioni siano sicure per evitare problemi intermittenti durante il funzionamento.

Esempi di codice e guida passo passo

Il codice Arduino inizia definendo i pin per il sensore laser e per l'azione (buzzer) usando gli identificatoriDETECTeACTION. Il codice inizializza la comunicazione seriale per il debug e imposta le modalità dei pin insetup()funzione.

#define DETECT 2 // pin 2 for sensor
#define ACTION 8 // pin 8 for action to do something

void setup() {
  Serial.begin(9600);
  pinMode(DETECT, INPUT); // define detect input pin
  pinMode(ACTION, OUTPUT); // define ACTION output pin
}

Questo frammento mostra come configurare i pin per l'ingresso e l'uscita, fondamentale per il corretto funzionamento della configurazione. IlSerial.begin(9600)Il comando consente la comunicazione con il monitor seriale, permettendoci di visualizzare i messaggi di debug.

Nelloop()funzione, il codice controlla continuamente lo stato del sensore laser. Se il raggio laser viene rilevato, attiva il buzzer e stampa "Detected!" sul monitor seriale.

void loop() {
  int detected = digitalRead(DETECT); // read Laser sensor
  if(detected == HIGH) {
    digitalWrite(ACTION, HIGH); // set the buzzer ON
    Serial.println("Detected!");
  } else {
    digitalWrite(ACTION, LOW); // Set the buzzer OFF
    Serial.println("No laser");
  }
  delay(200); // wait 200 milliseconds
}

Questo estratto dimostra la logica principale del programma. La variabiledetectedmemorizza l'output didigitalRead()funzione che verifica se il raggio laser è presente. A seconda dello stato, il cicalino si accende o si spegne.

Dimostrazione / Cosa aspettarsi

Quando la configurazione è cablata correttamente e il codice è caricato, il sistema dovrebbe funzionare come previsto. Il monitor seriale indicherà "Rilevato!" quando il fascio laser colpisce il ricevitore, e il cicalino suonerà. Se il fascio è interrotto o non rilevato, visualizzerà "Nessun laser" e il cicalino si spegnerà.

È essenziale assicurarsi che il fascio laser sia correttamente allineato con il ricevitore per un funzionamento affidabile. Prestare attenzione a possibili riflessioni che potrebbero provocare falsi positivi, come discusso nel video (al minuto 08:00).

Marcatori temporali del video

  • 00:00- Introduzione
  • 02:00- Spiegazione dell'hardware
  • 04:30- Istruzioni di cablaggio
  • 06:15- Spiegazione del codice
  • 08:00- Dimostrazione

Immagini

Laster RX or receiver module
Laster RX or receiver module
Laster RX or receiver module
Laster RX or receiver module
Laster TX or transmitter module
Laster TX or transmitter module
Laster TX or transmitter module
Laster TX or transmitter module
Laster TX or transmitter module
Laster TX or transmitter module
Arduion wiring laser Transmitter and receiver
Arduion wiring laser Transmitter and receiver
67-This is the Arduino code and video for a laser sensor module.
Lingua: C++
++
/*
 * Laser Sensor module for Arduino
 * Turns ON a buzzer or you can control a motor or servo or any other action.

 * Watch the video https://youtu.be/h_y1y6eUvIY

 *  * 
Laser Sensor module for Arduino
Written by Ahmad Shamshiri for Robojax.com
on Feb 02, 2018 at 18:24 in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 /*
/*


 */
  // Laser Sensor code for Robojax.com
#define DETECT 2 // pin 2 for  sensor
#define ACTION 8 // pin 8 for action to do something


void setup() {
  Serial.begin(9600);
  Serial.println("Robojax.com Laser Module Test");
  pinMode(DETECT, INPUT);//define detect input pin
  pinMode(ACTION, OUTPUT);//define ACTION output pin

  // Laser sensor code for Robojax.com

}

void loop() {
     // Laser Sensor code for Robojax.com

  int detected = digitalRead(DETECT);// read Laser sensor
 
  if( detected == HIGH)
  {
    digitalWrite(ACTION,HIGH);// set the buzzer ON
    Serial.println("Detected!");

  }else{
    digitalWrite(ACTION,LOW); // Set the buzzer OFF
    Serial.println("No laser");
     // Laser Sensor code for Robojax.com

  }
  delay(200);
}

Cose di cui potresti avere bisogno

Risorse e riferimenti

Nessuna risorsa ancora.

File📁

Nessun file disponibile.