Mini proiect (15) - Activare laser folosind un circuit cu optocuplor

Descriere proiect:
Azi am la teste un modul laser de 5500mW, care o sa-l folosesc mai departe la un alt proiect CNC laser engraver. Tin sa va avertizez ca acest laser este foarte periculos pentru ochi, si am purtat tot timpul ochelarii protectori. Circuitul de activare contine doua parti:

  1. Circuitul de activare de 5V de la Arduino
  2. Circuitul de stabilizare de la 12V la 5V pentru activarea laserului.

Documentatie proiect:

Componente:

Schema electronica/sistem:
Circuitul de mai jos a fost conceput în colaborare cu colegul meu Mihai Taloș:
O poza in care am surprins momentul in care laserul este activat alternativ de un semnal ON-OFF (gen PWM) primit de la Arduino:
Semnalul PWM masurat pe osciloscop:
Conectorul din stanga vine de la arduino , iar cel din dreapta este conectat la o sursa de 12 V si la laser:
Conectarea laserului:

Cod de test: Codul de mai jos este de fapt implementarea pentru aprinderea alternativa a unui LED, si care se potriveste excelent pentru testul meu:
// constants won't change. Used here to set a pin number:
const int ledPin =  13;// the number of the LED pin

// Variables will change:
int ledState = LOW;             // ledState used to set the LED

// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0;        // will store last time LED was updated

// constants won't change:
const long interval = 500;           // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // here is where you'd put code that needs to be running all the time.

  // check to see if it's time to blink the LED; that is, if the difference
  // between the current time and last time you blinked the LED is bigger than
  // the interval at which you want to blink the LED.
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
  }
}
O zi bună tuturor!

Etichete

Afișați mai multe

Arhiva

Afișați mai multe