Arduino e i suoi sensori laboratorio 23 Novembre 2019 Linolab

Ecco i progetti per questa lezione:

 La fotoresistenza un sensore per la luminosità!

arduino-crepuscolare-led-e-fotoresistenza-bb.png

int luminosita;  //Il valore letto dalla fotoresistenza
int ledPin = 10;  //Il pin del led

void setup() {
}

void loop() {
  luminosita = analogRead(A0);  //Lettura della luminosità
  luminosita = luminosita/4;  //Adeguiamo il valore della luminosità
  analogWrite(ledPin,luminosita);  //Mettiamo il valore letto per il led
  delay(10);  //Aspetta 10 ms
}

scarica il codice

Pilotiamo un LED col suono!

microphone-sound-sensor_bb.png

int ledPin=13;
int sensorPin=7;
boolean val =0;
boolean ledState = HIGH;

void setup(){
  pinMode(ledPin, OUTPUT);
  pinMode(sensorPin, INPUT);
  Serial.begin (9600);
} 
void loop (){
  val =digitalRead(sensorPin);
  Serial.println (val);
  // Quando il sensore percepisce un suono accende o spegne il LED
  if (val==HIGH) {
    ledState = !ledState;
  }
    digitalWrite(ledPin, ledState);
    delay(100);
}

scarica il codice

Pilotiamo dei LED con il telecomando a infrarossi!

Arduino-IR-Remote-Receiver-Controlling-LEDs.png

#include 

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int redPin = 10;
const int greenPin = 11;
int redState = HIGH;
int greenState = HIGH;


void setup(){
  irrecv.enableIRIn();
  irrecv.blink13(true);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
}
//Leggiamo i segnali del telecomando per accedere e spegnere i LED
void loop(){
    if (irrecv.decode(&results)){

        switch(results.value){
          case 0xFF38C7: //Keypad button "5"
          redState = !redState;
          break;
          case 0xFF18E7: //Keypad button "2"
          greenState = !greenState;
          break;
          }
        digitalWrite(redPin, redState);
        digitalWrite(greenPin, greenState);
        irrecv.resume(); 
    }
}

scarica il codice

Un LED RGB con il telecomando!

Arduino-IR-Remote-Receiver-RGBLED.png

#include  
const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int bPin = 9;
const int rPin = 10;
const int gPin = 5;
int rState = 0;
int gState = 0;
int bState = 0;
int step = 85;


void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn();
  irrecv.blink13(true);
  pinMode(rPin, OUTPUT);
  pinMode(gPin, OUTPUT);
  pinMode(bPin, OUTPUT);
}
//Con i tasti 1,2,3,4,5,6 del telecomando infrarossi mandiamo un segnale che viene interbretato da Arduino
// e modifica i liveeli di colore del LED RGB
void loop(){
    if (irrecv.decode(&results)){
        Serial.println(results.value, HEX);
        switch(results.value){
          
          case 0xFF38C7: //Keypad button "5"
          if (gState > 0){
            gState = gState - step;
          }
          break;
          
          case 0xFF18E7: //Keypad button "2"
          if (gState < 255){             gState = gState + step;           }           break;                      case 0xFF10EF: //Keypad button "4"           if (rState > 0){
            rState = rState - step;
          }
          break;
          
          case 0xFF30CF: //Keypad button "1"
          if (rState < 255){             rState = rState + step;           }           break;                      case 0xFF5AA5: //Keypad button "6"           if (bState > 0){
            bState = bState - step;
          }
          break;
          
          case 0xFF7A85: //Keypad button "3"
          if (bState < 255){
            bState = bState + step;
          }
          break;
          }
          
        analogWrite(rPin, rState);
        analogWrite(gPin, gState);
        analogWrite(bPin, bState);
        irrecv.resume(); 
    }
}

scarica il codice

Misuriamo le distanze con il sensore ad ultrasuoni!

Ultrasonic Sensor_bb.png

// defines pins numbers
const int trigPin = 9;
const int echoPin = 10;
const int buzzer = 6;
int notes[] = {196, 220, 247, 294, 330, 392, 440, 494, 588, 660}; 

// defines variables
long duration;
int distance;

void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
pinMode(buzzer, OUTPUT); // Sets the buzzer pin as output
Serial.begin(9600); // Starts the serial communication
}

void loop() {
// reset di pulizia
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

// abilitiamo il trig per 10 millisecondi
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

// Leggiamo il tempo dell'eco che ci dice quanto tempo è passato tra invio e ricezione
duration = pulseIn(echoPin, HIGH);

// Calcoliamo la distanza
distance= duration*0.034/2;

// Stampo la distanza su monitor
Serial.print("Distance: ");
Serial.println(distance);

if (distance <= 120 && distance >= 5){
  tone(buzzer, (120-distance)*10);
} else {
  noTone(buzzer);
}
}

scarica il codice

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...