Sunteți pe pagina 1din 25

Arduino în procesul de predare-

învățare
Florean Mihail, profesor de fizică grad didactic I
Ce este Arduino

Arduino este o platformă open-source utilizată pentru construirea de


proiecte electronice.
Cum programăm Arduino?

Avem nevoie:
❖ Mediu de programare (Arduino IDE)
❖ Program ( Sketch) scris în C++
❖ Plăcuţa Arduino conectată prin cablu la calculator
Arduino IDE

Pagina cu toate versiunile https://www.arduino.cc/en/software/OldSoftwareReleases

Descărcăm şi o instalăm.

Dacă avem o plăcuță neoficială (Made in China) instalăm controlerul Usb ch340

https://sparks.gogo.co.nz/ch340.html
Arduino cloud

Arduino Cloud este o platformă online dezvoltată de Arduino care permite


utilizatorilor să monitorizeze și să controleze dispozitivele lor Arduino de la
distanță, prin intermediul internetului. Această platformă oferă instrumente pentru
gestionarea dispozitivelor IoT (Internet of Things) bazate pe Arduino, permițând
utilizatorilor să creeze aplicații și să controleze diverse dispozitive conectate la
internet, cum ar fi senzori, module de comunicare și actuatori.

https://app.arduino.cc/
Testăm plăcuţa
1. Conectăm plăcuţa la calculator
2. În mediul Arduino IDE urmăm meniul Fişier->Exemple-> 01.Basics->Blink
3. În meniul instrumente verificăm corectitudinea alegerii plăcii (arduino Uno)
4. În meniul instrumente verificăm corectitudinea alegerii portului de date (de obicei com 3)
5. Rulăm la execuţie şi înscriere a programului
6. Rezultatul:
Programul exemplu Blink
void setup() {

pinMode(LED_BUILTIN, OUTPUT); // initialize digital pin LED_BUILTIN as an output.

// the loop function runs over and over again forever

void loop() {

digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

}
Schimbaţi perioada de iluminare conform
ritmului cardiac

● nou-născut: între 100-170 bătăi pe minut;


● bebeluș (6 luni- 2 ani): 90-130 bătăi pe minut;
● copii cu vârsta între 2-4 ani: 80-120 bătăi pe minut;
● copii cu vârsta între 4-6 ani: 70-110 bătăi pe minut;
● copii cu vârsta peste 10 ani: 60-100 bătăi pe minut.

T=t/N
Determinarea accelerației căderii
libere prin metoda stroboscopică
Breadboard
linia de alimentare (roşu “+” albastru “-”=

Conexiune electrică
Conectăm un led paralel cu ledul de pe
plăcuţă
Geografia - Detectarea cutremurului de
Pământ
const int Pin=7;
void setup() {
pinMode(Pin, INPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = digitalRead(Pin);
if(sensorValue==HIGH){
Serial.println("Cutremur!!!");
delay(500);
}

}
Biologia
Organismul uman și sănătatea

Măsurarea parametrilor condițiilor normale de lucru/studii:

Temperatura, umiditatea, presiunea, iluminarea…

Determinarea pulsului și ritmului cardiac


Chimia

Compararea proprietăților fizice ale metalelor și nemetalelor (starea de


agregare, culoarea, luciu). Luciul metalic poate fi măsurat calitativ prin
reflexia luminii către un fotosenzor
Reacții endoterme și exoterme, cu ajutorul senzorului de temperatură se
determină tipul reacției.
Factorii de poluare a aerului în localitatea mea, măsurarea poluării cu
ajutorul senzorului de calitate a aerului.
Măsurăm tensiunea electrică
Fizica clasa a 8-a, clasa a 11-a
void setup() {
Serial.begin(9600);
}

void loop() {
int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.0 / 1023.0);
Serial.println(voltage);
}
Cod program
// the setup routine runs once when you press // print out the value you read:
reset: if (voltage>1.47){
void setup() { digitalWrite(3,HIGH);
// initialize serial communication at 9600 bits digitalWrite(2,LOW);}
per second:
Serial.begin(9600); if (voltage<1.47 and voltage>1.12){
pinMode(3, OUTPUT); digitalWrite(3,LOW);
pinMode(2, OUTPUT);
digitalWrite(2,HIGH);}
}
// the loop routine runs over and over again
if (voltage<0.2){
forever:
void loop() {
digitalWrite(3,LOW);
// read the input on analog pin 0: digitalWrite(2,LOW);}
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes Serial.println(voltage);
from 0 - 1023) to a voltage (0 - 5V): }
float voltage = sensorValue * (5.0 / 1023.0);
Măsurați tensiunile pe rezistori

U2

U1
Măsurarea distanței cu senzorul ultrasonic
Programul
#define echoPin 2 // attach pin D2 Arduino to pin Echo void loop()
of HC-SR04 {
#define trigPin 3 // attach pin D3 Arduino to pin Trig of digitalWrite(trigPin, LOW);
HC-SR04 delayMicroseconds(2); // wait for 2 ms to
avoid
long duration; // Variable to store time taken to the pulse digitalWrite(trigPin, HIGH); // turn on the
int distance; // Variable to store distance calculated using Trigger to generate pulse
void setup() delayMicroseconds( 10); // keep the
{ trigger "ON" for 10 ms to generate
pinMode(trigPin, OUTPUT); // Sets the digitalWrite(trigPin,LOW); // Turn off the
trigPin as an OUTPUT pulse trigger to stop
pinMode(echoPin, INPUT); // Sets the
echoPin as an INPUT duration = pulseIn(echoPin, HIGH);
Serial.begin(9600); distance = duration * 0.0344 / 2;
} Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(100);
}
Măsurarea temperaturii cu DS18B20
#include <OneWire.h> void loop() {
#include <DallasTemperature.h> sensors.requestTemperatures();
float temperatura = sensors.getTempCByIndex(0);
// Definirea pinului conectat la senzorul DS18B20
#define ONE_WIRE_BUS 2 if (temperatura != DEVICE_DISCONNECTED_C) {
Serial.print("Temperatura: ");
OneWire oneWire(ONE_WIRE_BUS); Serial.print(temperatura);
DallasTemperature sensors(&oneWire); Serial.println("°C");
} else {
void setup() { Serial.println("Senzorul nu este conectat!");
Serial.begin(9600); }
sensors.begin();
} delay(1000); // Așteaptă 1 secundă între citiri
}
Instalarea librăriilor

1. Accesăm Sketch > Include Library > Manage Libraries.

2. Scriem “OneWire” și căutăm OneWire library de Paul Stoffregen.

3. Apoi căutăm “Dallas” și instalăm Dallas Temperature library de Miles


Burton.
Măsurarea temperaturii cu LM35
const int lm35_pin = A1; /* LM35 O/P pin */

void setup() {
Serial.begin(9600);
}

void loop() {
int temp_adc_val;
float temp_val;
temp_adc_val = analogRead(lm35_pin); /* Read Temperature */
temp_val = (temp_adc_val * 4.88); /* Convert adc value to equivalent
voltage */
temp_val = (temp_val/10); /* LM35 gives output of 10mv/°C */
Serial.print("T= ");
Serial.println(temp_val);
delay(1000);
}

S-ar putea să vă placă și