Omet navegació

Activitat Cinta corredera

Components

  1. Targeta ESP32 o Wemos D1 R32
  2. Driver L298
  3. Motor de continua amb reductora.
  4. Pila de 9V
  5. Emissor làser KY-008
  6. Resistència depenent de la llum (LDR)
  7. Resistència de 10K
  8. Fustes variades amb contruir la cinta corredera
  9. Cables mascle-mascle i mascle-femella d'Arduino

El muntatge electrònic

Cinta corrdera + lasser + LDR

L'eixida del monitor sèrie quan el feix de llum làser impacta contra el LDR

Lectura del monitor sèrie

El programa amb l'IDE Arduino


int pinLaser = 19;
int pinLDR = 2;
int Valor_LDR;

// Motor A Horari
void Motor_A_Horari() {
  Serial.println("Escut L298 motor A Horari");
  Serial.println("Activem IN1=26");
  digitalWrite(26, HIGH);
  Serial.println("Desactivem IN2=25");
  digitalWrite(25, LOW);
}


// Motor A antiHorari
void Motor_A_antiHorari() {
  Serial.println("Escut L298 motor A antiHorari");
  Serial.println("Desactivem IN1=26 ");
  digitalWrite(26, LOW);
  Serial.println("Activem IN2=25");
  digitalWrite(25, HIGH);
}


// Atura motor A
void Atura_Motor_A() {
  Serial.println("Escut L298 motor A aturat");
  Serial.println("Desactivem IN1=26");
  digitalWrite(26, LOW);
  Serial.println("Desactivem IN2=25");
  digitalWrite(25, LOW);
}



void setup() {
  Serial.begin(115200); // Comunicacions amb el serial port per escriure missatge
  pinMode(26, OUTPUT); // Eixida de dades
  pinMode(25, OUTPUT); // Eixida de dades
  pinMode(pinLDR, INPUT); // Entrada de dades
  pinMode(pinLaser, OUTPUT); // Eixida de dades
  Serial.println("El valor de LDR varia entre 0 i 4095");
  Serial.println("Un valor alt equival a molt llum");
  Serial.println("Un valor baix equival a poca llum");

}

void loop() {
    Serial.println("Activem el làser");
    digitalWrite(pinLaser, HIGH);
    Serial.println("Llegim el LDR");
    Serial.println("Sempre que estiguen alineats");
    Valor_LDR = analogRead(pinLDR);
    Serial.print("Lectura LDR = ");
    Serial.println(Valor_LDR);
    delay(1000); // Temporal borrar després
    
    if (Valor_LDR < 2000) {
      Atura_Motor_A();
      delay(200);
    }// final if
    
    if (Valor_LDR > 2000) {
     Motor_A_Horari();
     delay(200);
    }// final if

}// final void_loop

Creat amb eXeLearning (Finestra nova)