33175 33176 33177 Microcontroleurs PB100 PB200 PB300
Microcontrôleur PB100 33175
Ressource utilisation : Radar de recul séance 1.
Ressource utilisation : Radar de recul séance 2.
Ressource utilisation : Radar de recul séance 3.
Ressource utilisation : Radar de recul séance 4.
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
float getDistance(int trig,int echo){
pinMode(trig,OUTPUT);
digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
pinMode(echo, INPUT);
return pulseIn(echo,HIGH,30000)/58.0;
}
void setup(){
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(13,OUTPUT);
}
void loop(){
if((getDistance(8,9)) < (20)){
digitalWrite(6,1);
digitalWrite(7,0);
tone(13,650,125);
delay(125);
}else{
if((getDistance(8,9)) < (40)){
digitalWrite(6,1);
digitalWrite(7,0);
}else{
tone(13,550,250);
delay(250);
digitalWrite(6,0);
digitalWrite(7,1);
}
}
_loop();
}
void _delay(float seconds){
long endTime = millis() + seconds * 1000;
while(millis() < endTime)_loop();
}
Microcontrôleur PB200 33176
Ressource utilisation : Produire un son.
Ressource utilisation : Capteur de température.
const int pin_led_jaune = 3;
const int pin_bp_jaune = 12;
const int pin_led_rouge = 2;
const int pin_bp_rouge = 11;
const int pin_led_bleue = 5;
const int pin_bp_bleu = 10;
const int pin_led_verte = 4;
const int pin_bp_vert = 9;
void setup(){
pinMode(pin_bp_jaune,INPUT);
pinMode(pin_bp_rouge,INPUT);
pinMode(pin_bp_bleu,INPUT);
pinMode(pin_bp_vert,INPUT);
pinMode(pin_led_jaune,OUTPUT);
pinMode(pin_led_rouge,OUTPUT);
pinMode(pin_led_bleue,OUTPUT);
pinMode(pin_led_verte,OUTPUT);
}
void loop(){
if(digitalRead(pin_bp_jaune)==HIGH)
{
digitalWrite(pin_led_jaune,HIGH);
}
else
{
digitalWrite(pin_led_jaune,LOW);
}
if(digitalRead(pin_bp_rouge)==HIGH)
{
digitalWrite(pin_led_rouge,HIGH);
}
else
{
digitalWrite(pin_led_rouge,LOW);
}
if(digitalRead(pin_bp_bleu)==HIGH)
{
digitalWrite(pin_led_bleue,HIGH);
}
else
{
digitalWrite(pin_led_bleue,LOW);
}
if(digitalRead(pin_bp_vert)==HIGH)
{
digitalWrite(pin_led_verte,HIGH);
}
else
{
digitalWrite(pin_led_verte,LOW);
}
}
from pyfirmata import *
print("PIERRON - PB200 : Défi 2")
print("Connection à l'Arduino ...")
arduino = Arduino('COM12')
pin_led_jaune = 3
pin_bp_jaune = 12
pin_led_rouge = 2
pin_bp_rouge = 11
pin_led_bleue = 5
pin_bp_bleu = 10
pin_led_verte = 4
pin_bp_vert = 9
pin_leds = [pin_led_verte, pin_led_jaune, pin_led_rouge,pin_led_bleue]
pin_pbs = [pin_bp_vert, pin_bp_jaune, pin_bp_rouge, pin_bp_bleu]
for pin in pin_leds:
arduino.digital[pin].mode = OUTPUT
for pin in pin_pbs:
arduino.digital[pin].mode = INPUT
print("Appuyer sur le bouton XX pour que la LED XX s'allume.")
try:
while True:
arduino.iterate()
for index in range(4):
if arduino.digital[pin_pbs[index]].read()==1:
arduino.digital[pin_leds[index]].write(1)
else:
arduino.digital[pin_leds[index]].write(0)
except KeyboardInterrupt:
arduino.exit()
Microcontrôleur PB300 33177
Ressource utilisation : Chronomètre séance 1.
Ressource utilisation : Chronomètre séance 2.
Ressource utilisation : Chronomètre séance 3.
Ressource utilisation : Chronomètre séance 4.
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C EcranLCD(0x20,20,4);
const int pin_capteur1 = A0;
const int pin_capteur2 = A1;
const int pin_led_rouge = 2;
const int pin_led_verte = 4;
const int pin_buzzer = 6;
void setup(){
pinMode(pin_capteur1,INPUT);
pinMode(pin_capteur2,INPUT);
pinMode(pin_led_rouge,OUTPUT);
pinMode(pin_led_verte,OUTPUT);
pinMode(pin_buzzer,OUTPUT);
Serial.begin(9600);
EcranLCD.init();
EcranLCD.backlight();
EcranLCD.clear();
EcranLCD.setCursor(0, 0);
EcranLCD.print(" CHRONOMETREZ");
EcranLCD.setCursor(0, 1);
EcranLCD.print(" une course avec");
EcranLCD.setCursor(0, 2);
EcranLCD.print(" le microcontroleur");
EcranLCD.setCursor(6, 3);
EcranLCD.print("ARDUINO");
delay(4000);
EcranLCD.clear();
EcranLCD.setCursor(0, 0);
EcranLCD.print(" Lachez l'objet ");
EcranLCD.setCursor(0, 1);
EcranLCD.print(" sur la rampe ");
EcranLCD.setCursor(0, 2);
EcranLCD.print(" de la maquette ");
EcranLCD.setCursor(0, 3);
EcranLCD.print(" PB300 ");
}
void loop(){
float top_depart;
float t;
if(analogRead(pin_capteur1) < 900){
top_depart = millis();
digitalWrite(pin_led_verte,0);
digitalWrite(pin_led_rouge,1);
tone(pin_buzzer,600,100);
while(analogRead(pin_capteur2) > 900){
}
t =(millis() - top_depart) / 1000.0;
tone(pin_buzzer,600,100);
EcranLCD.clear();
EcranLCD.setCursor(0, 1);
EcranLCD.print(" duree = " + String(t,3) + " s");
EcranLCD.setCursor(0, 3);
EcranLCD.print("* Relancez l'objet *");
Serial.println(String(t,3));
}
else{
digitalWrite(pin_led_verte,1);
digitalWrite(pin_led_rouge,0);
}
}
En cas de difficultés, il y a toujours possibilité de télécharger le programme d’origine à partir des « ressources » sur le site www.pierron.fr.
Ces maquettes à base d'Arduino nano sont commercialisées par la société Pierron (https://www.pierron.fr) en collaboration avec Patrice Buffet qui en a conçu le principe et développé la pédagogie.