corso 2018 L3

by / venerdì, 17 novembre 2017 / Published in Archivio Robotica

 

 

LEZIONE n° 3 – SENSORI

 

 

La lezione è sui sensori e sulla loro gestione. Si useranno i sensori (LED) in modo evoluto rispetto alla lezione precedente.

Per provare a fare le modifiche proposte copiare il listato (colorato in rosso) ed incollarlo in un editor di solo testo [Notepad ad esempio]

listato programma esempio numero 3:

ACCENDERE DUE LED SECONDO IL VALORE DI DUE PIN DIGITALI

/*

Button

Turns on and off a light emitting diode(LED) connected to digital

pin 13, when pressing a pushbutton attached to pin 2.

The circuit:

* LED attached from pin 2 and 8 to ground

* pushbutton attached to pin 5 and 6 from +5V

*/

// set pin numbers:

const int buttonPin1 = 5; // the number of the pushbutton pin

const int buttonPin2 = 6; // the number of the pushbutton pin

const int ledPin1 = 2; // the number of the LED pin

const int ledPin2 = 8; // the number of the LED pin

// variables will change:

int buttonState1 = 0; // variable for reading the pushbutton status

int buttonState2 = 0; // variable for reading the pushbutton status

void setup() {

// initialize the LED pin as an output:

pinMode(ledPin1, OUTPUT);

pinMode(ledPin2, OUTPUT);

// initialize the pushbutton pin as an input:

pinMode(buttonPin1, INPUT);

pinMode(buttonPin2, INPUT);

}

void loop(){

// read the state of the pushbutton value:

buttonState1 = digitalRead(buttonPin1);

buttonState2 = digitalRead(buttonPin2);

// check if the pushbutton is pressed.

// if it is, the buttonState is HIGH:

if (buttonState1 == LOW || buttonState2 == LOW ) {

// turn LED on:

digitalWrite(ledPin1, LOW);

digitalWrite(ledPin2, LOW);

}

if (buttonState1 == HIGH ) {

// turn LED on:

digitalWrite(ledPin1, HIGH);

digitalWrite(ledPin2, LOW);

}

if (buttonState2 == HIGH ) {

// turn LED on:

digitalWrite(ledPin1, LOW);

digitalWrite(ledPin2, HIGH);

}

if ((buttonState1 == HIGH)&&(buttonState2 == HIGH )) {

// turn LED on:

digitalWrite(ledPin1, HIGH);

digitalWrite(ledPin2, HIGH);

}

}

 

 

Modifiche proposte:

  • invece di accendere il LED FARLO LAMPEGGIARE PER DUE VOLTE CONSECUTIVE
  • CAMBIARE il modo di lampeggiare

 

 

listato programma esempio numero 4:

ACCENDERE TRE LED SECONDO IL VALORE DI UN PIN ANALOGICO

/*

Button

Turns on and off a light emitting diode(LED) connected to digital

pin 2/8/9, secondo value of an analog pin A1.

*/

// set pin numbers:

int sensorPin = A1;

int sensorValue = 0; // variable to store the value coming from the sensor

const int ledPin1 = 2; // the number of the LED pin

const int ledPin2 = 8; // the number of the LED pin

const int ledPin3 = 9; // the number of the LED pin

// variables will change:

void setup() {

Serial.begin(9600);

// initialize the LED pin as an output:

pinMode(ledPin1, OUTPUT);

pinMode(ledPin2, OUTPUT);

pinMode(ledPin3, OUTPUT);

// initialize the pushbutton pin as an input:

}

void loop(){

// read the state of the pushbutton value:

sensorValue = analogRead(sensorPin);

// print the results to the serial monitor:

Serial.print(“sensor = ” );

Serial.print(sensorValue);

Serial.print(“\n “);

// Serial.println(outputValue);

// wait 10 milliseconds before the next loop

// for the analog-to-digital converter to settle

// after the last reading:

delay(10);

// check if the pushbutton is pressed.

// if it is, the buttonState is HIGH:

if ((100 < sensorValue)&&( sensorValue < 300) ) {

// turn LED on:

digitalWrite(ledPin1, LOW);

digitalWrite(ledPin2, LOW);

digitalWrite(ledPin3, LOW);

}

if ((300 < sensorValue)&&( sensorValue < 550) ) {

// turn LED on:

digitalWrite(ledPin1, HIGH);

digitalWrite(ledPin2, LOW);

digitalWrite(ledPin3, LOW);

}

if ((550 < sensorValue)&&( sensorValue < 650) ) {

// turn LED on:

digitalWrite(ledPin1, LOW);

digitalWrite(ledPin2, HIGH);

digitalWrite(ledPin3, LOW);

}

if ((650 < sensorValue)&&( sensorValue < 850) ) {

// turn LED on:

digitalWrite(ledPin1, LOW);

digitalWrite(ledPin2, LOW);

digitalWrite(ledPin3, HIGH);

}

if ((850 < sensorValue)&&( sensorValue < 1050) ) {

// turn LED on:

digitalWrite(ledPin1, HIGH);

digitalWrite(ledPin2, HIGH);

digitalWrite(ledPin3, HIGH);

}

}

Modifiche proposte:

  • CAMBIARE i valori da segnalare in condizioni diverse
  • CAMBIARE il modo di lampeggiare

di seguito le slide della lezione

 

(48)

Tagged under: , ,

Lascia un commento

TOP