SlideShare a Scribd company logo
1 of 39
Download to read offline
Εισαγωγή στην χρήση των Arduino
Επιμορφωτικό σεμινάριο
“STEM/STEAM/STREAM Εκπαίδευση –
Εφαρμογές Ρομποτικής”
ΔΔΕ Γ Αθήνας – 3ο Γενικό Λύκειο Αιγάλεω -
Βιβλιοθήκη Ανδρίτσαινας.
Χ. Δ. Φανίδης
Σύμβουλος Φ.Ε. Γ Αθήνας
12/2023
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 2
Περιεχόμενα παρουσίασης
 Χρήση των ψηφιακών εισόδων-εξόδων του Arduino
 Διαμόρφωση εύρους παλμού (Pulse Width Modulation)
 Αναλογικές είσοδοι
 Αναλογικές είσοδοι – AnalogRead()
 Αναλογικές είσοδοι – Εφαρμογή της AnalogRead()
 Αναλογικές είσοδοι – Αισθητήρας θερμοκρασίας
 Πρωτόκολλα επικοινωνίας
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 3
Χρήση των ψηφιακών εισόδων – εξόδων του
Arduino
Το Arduino έχει 14 ψηφιακές εισόδους/εξόδους. Αυτές μπορούν να
δώσουν τάση 0V → LOW ή 5V → HIGH
https://makeabilitylab.github.io/physcomp/arduino/led-
blink.html#introducing-digital-output
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 4
Χρήση των ψηφιακών εισόδων – εξόδων του
Arduino
Οι εντολές για την χρήση των ψηφιακών εισόδων/εξόδων:
pinMode(int pin, int mode) διαμορφώνει ένα συγκεκριμένο
ακροδέκτη ως είσοδο (INPUT) ή έξοδο (OUTPUT).
digitalRead(int pin) Διαβάζει την ψηφιακή είσοδο από τον
συγκεκριμένο ακροδέκτη ως HIGH ή LOW.
digitalWrite(int pin, int value) γράφει στον ψηφιακό ακροδέκτη
που ορίσαμε HIGH or LOW.
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 5
Χρήση των ψηφιακών εισόδων – εξόδων του
Arduino
void setup() {
pinMode(13, OUTPUT); // sets the digital pin 13 as output
}
void loop() {
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(1000); // waits for a second
digitalWrite(13, LOW); // sets the digital pin 13 off
delay(1000); // waits for a second
}
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 6
Χρήση των ψηφιακών εισόδων – εξόδων του
Arduino
int Pin = 8; // Initializing Arduino Pin
int Reading;
void setup() {
pinMode(Pin, INPUT); // Declaring Arduino Pin as an Input
}
void loop() {
Reading = digitalRead(Pin); // Reading status of Arduino digital Pin
if(Reading == HIGH)
{
Serial.println("HIGH");
}
if(Reading == LOW)
{
Serial.println("LOW");
}
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 7
Χρήση των ψηφιακών εισόδων – εξόδων του
Arduino
Αν το σήμα σε μία είσοδο είναι 3 Volts<Vi<5 Volts τότε η είσοδος
είναι HIGH ενώ όταν είναι 1,5 Volts<Vi<0 Volts τ’οτε η είσοδος
είναι LOW.
Η αλλαγή από την μία κατάσταση στην άλλη γίνεται ανάμεσα στο
1,5 Volts -3 Volts, σε τάση που είναι διαφορετική σε κάθε είδος
Arduino.
https://forum.arduino.cc/t/digital-pin-high-low-voltages/622707/11
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 8
Χρήση των ψηφιακών εισόδων – εξόδων του
Arduino
Σημ. και οι αναλογικές είσοδοι μπορούν να οριστούν ως ψηφιακές
είσοδοι/έξοδοι αν αντί του αριθμού του ακροδέκτη
χρησιμοποιήσουμε Α0, Α1, Α2 ...Α5 (π.χ. digitalWrite(A2, LOW)
)
Οι ακροδέκτες με ~ μπορούν να χρησιμοποιηθούν για την
λειτουργία Pulse Width Modulation (PWM) που προσομοιώνει,
κατά κάποιο τρόπο, τις ψηφιακές εξόδους σαν αναλογικές.
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 9
Διαμόρφωση εύρους παλμού (Pulse Width
Modulation)
Οι ψηφιακοί ακροδέκτες μπορούν να βγάζουν μια τάση 5V με
μεταβαλλόμενη διάρκεια. Π.χ. για κύκλο λειτουργίας 50% (duty
cycle 50%) δηλ. για να έχουμε 5V στην μισή διάρκεια της
περιόδου - της διάρκειας του κύκλου - (δηλ. η μέση τάση είναι
2,5V) το σήμα είναι
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 10
Διαμόρφωση εύρους παλμού (Pulse Width
Modulation)
Σημ. η διάρκεια του κύκλου – περίοδος (cycle duration) για το
Arduino είναι 0,002s.
Για να πετύχουμε PWM χρησιμοποιούμε την συνάρτηση
analogWrite(pin, value);
Το pin είναι ο αριθμός του ακροδέκτη που θα παραχθεί το σήμα. Το
value καθορίζει τον κύκλο λειτουργίας και προκύπτει από τον
τύπο
https://www.circuitbasics.com/how-to-use-pulse-width-modulation-on-the-arduino/
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 11
Διαμόρφωση εύρους παλμού (Pulse Width
Modulation)
https://www.circuitbasi
cs.com/how-to-use-
pulse-width-
modulation-on-the-
arduino/
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 12
Διαμόρφωση εύρους παλμού (Pulse Width
Modulation)
int ledPin = 6;
int brightness = 0;
int fadeAmount = 15;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
analogWrite(ledPin, brightness);
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(30);
}
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 13
Αναλογικές είσοδοι
Είναι οι ακροδέκτες από Α0-Α5. Συνδέονται με έναν ADC (Analog to
Digital Converter) που μετατρέπει το αναλογικό σήμα από 0-5V σε
διάκριτες τιμές.
Στις αναλογικές εισόδους μπορούμε να βάλουμε μία αναλογική τάση
από 0-5V δηλ. τάση που παίρνει όλες τις πιθανές τιμές από 0-5V.
Αναλογικό σήμα δίνουν αισθητήρες ήχου, φωτός, θερμοκρασίας και
πίεσης.
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 14
Αναλογικές είσοδοι - AnalogRead
Είναι οι ακροδέκτες από Α0-Α5. Συνδέονται με έναν ADC (Analog to
Digital Converter) που μετατρέπει το αναλογικό σήμα από 0-5V σε
διάκριτες τιμές.
Στις αναλογικές εισόδους μπορούμε να βάλουμε μία αναλογική τάση
από 0-5V δηλ. τάση που παίρνει όλες τις πιθανές τιμές από 0-5V.
Αν χρησιμοποιήσουμε την συνάρτηση analogRead() και διαβάσουμε με
αυτή την είσοδο, τότε ανάλογα με τα volts στην είσοδο, η συνάρτηση
αποδίδει 2n ακέραιες τιμές όπου n είναι τα bits που έχει ο μετατροπέας
του μικροελεγκτή από αναλογικό σε ψηφιακό σήμα (ADC converter).
Για το Uno R3 έχει 10 bits άρα αποδίδει 210 =1024 τιμές.
0≤ AnalogRead(pin) ≤1023
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 15
Αναλογικές είσοδοι - AnalogRead
Αν για παράδειγμα o μετατροπέας είχε 2 bit τότε θα χώριζε τα 0-5V σε
4(=22) τμήματα. Δηλ. σε βήματα των 5/4=1,25 V. Η AnalogRead θα έδινε
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 16
Αναλογικές είσοδοι - AnalogRead
Επειδή τα 5V χωρίζονται σε 1024 τιμές τότε στα Vεισόδου αντιστοιχεί
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 17
Αναλογικές είσοδοι – Εφαρμογή της ΑnalogRead
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 18
Αναλογικές είσοδοι - Εφαρμογή της AnalogRead
int potPin = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int reading = analogRead(potPin);
Serial.println(reading);
delay(500);
}
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 19
Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας
Εφαρμογή με τον ίδιο κώδικα με αισθητήρα θερμοκρασίας (δίνει βέβαια λάθος
τιμές)
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 20
Αναλογικές είσοδοι - - αισθητήρας θερμοκρασίας
Εφαρμογή με σωστό κώδικα με αισθητήρα θερμοκρασίας
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 21
Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας
Και ο σωστός
κώδικας για
τον
αισθητήρα
θερμοκρασίας
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 22
Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας
Και ο σωστός κώδικας για τον αισθητήρα θερμοκρασίας
//TMP36 Pin Variables
int sensorPin = 0;
void setup()
{
Serial.begin(9600); //Start the serial connection with the computer
//to view the result open the serial monitor
}
void loop() // run over and over again
{
//getting the voltage reading from the temperature sensor
int reading = analogRead(sensorPin);
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 23
Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας
int reading = analogRead(sensorPin);
// Αν voltage η τάση που δίνει το TMP36 τότε η μετατροπή που κάνει η αναλογική είσοδος
είναι:
// reading = (voltage *1024)/5.0
// converting that reading to voltage, that the TMP36 gave to pin 0
float voltage = reading * 5.0;
voltage /= 1024.0; // i.e. voltage = voltage/1024
// print out the voltage
Serial.print(voltage); Serial.println(" volts");
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 24
Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας
// print out the voltage
Serial.print(voltage); Serial.println(" volts");
// now print out the temperature
// For TMP36 the output in Volts: V(Volts) = 0,5+0,01*θ
// where θ is the temperature in Celsius degrees
float temperatureC = (voltage - 0.5) * 100 ;
//converting from 10 mv per degree with 500 mV offset
//to degrees ((voltage - 500mV) times 100)
Serial.print(temperatureC); Serial.println(" degrees C");
// now convert to Fahrenheit
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 25
Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας
// now convert to Fahrenheit
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF); Serial.println(" degrees F");
delay(1000); //waiting a second
}
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 26
Πρωτόκολλα επικοινωνίας
Τα Arduino επικοινωνούν με άλλους μικροελεγκτές (Arduino ή
Raspeberry), H/Y, αλλά και αισθητήρες χρησιμοποιώντας τρία
πρωτόκολλα επικοινωνίας
1) UART - Universal Asyncrhonous Receiver Transmitter (Παγκόσμιος
Ασύγχρονος Δέκτης και Εκπομπός)
2) I2C ή Ι2C - Inter-Integrated Circuit (Διαολοκληρωμένο κύκλωμα)
3) SPI - Serial Peripheral Interface (Σειριακή περιφερειακή Διεπαφή)
Για κάθε ένα από αυτά τα πρωτόκολλα επικοινωνίας υπάρχουν δίαυλοι
(buses) αλλά και οι αντίστοιχοι ακροδέκτες στην πλακέτα του Arduino.
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 27
Πρωτόκολλα επικοινωνίας - UART
UART - Universal Asyncrhonous Receiver Transmitter (Παγκόσμιος
Ασύγχρονος Δέκτης και Εκπομπός)
Είναι η Σειριακή Επικοινωνία όπου η πληροφορία ανταλλάσσεται με το
ένα bit να ακολουθεί το άλλο.
https://docs.arduino.cc/learn/communi
cation/uart
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 28
Πρωτόκολλα επικοινωνίας - UART
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 29
Πρωτόκολλα επικοινωνίας - UART
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 30
Πρωτόκολλα επικοινωνίας - I2C
Μπορούν πολλοί αισθητήρες να συνδεθούν σε 2 διαύλους. Μπορεί να
υπάρχουν και πολλές master συσκευές (multi master – multi slave)
https://medium.co
m/learning-by-
doing-404/i2c-
communication-
between-rpi-and-
arduino-
b7064bffe02a
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 31
Πρωτόκολλα επικοινωνίας - I2C
Κάθε αισθητήρας έχει την δική του μοναδική διεύθυνση. (Συνήθως δίνεται
από τον κατασκευαστή αλλά μπορεί και να αλλαχτεί)
https://www.elec
tronicshub.org/
arduino-i2c-
tutorial/
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 32
Πρωτόκολλα επικοινωνίας - I2C
Το SDA (Serial Data) – Ο δίαυλος
που ο master και ο slave
στέλνουν και λαμβάνουν
δεδομένα
SCL (Serial Clock) – Ο δίαυλος
που φέρει το σήμα του
ρολογιού.
Έχει χαμηλότερο ρυθμό
μεταφοράς δεδομένων από το
SPI
https://linuxhint.com/arduino-i2c-
communication-pins/
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 33
Πρωτόκολλα επικοινωνίας - I2C
Οι εντολές για το πρωτόκολλο I2C είναι :
Wire.begin()
Wire.requestFrom()
Wire.beginTransmission()
Wire.endTransmission()
Wire.write()
Wire.available()
Wire.read()
Wire.SetClock()
Wire.onReceive()
Wire.onRequest()
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 34
Πρωτόκολλα επικοινωνίας - SPI
Τύπος σύγχρονης σειριακής επικοινωνίας, που σημαίνει ότι η μεταφορά
δεδομένων χρονίζεται με χρήση παλμών ρολογιού. Είναι καλό
πρωτόκολλο για μεταφορά δεδομένωνμεταξύ συσκευών που απέχουν
λιγότερο από 10 m.
Είναι ταχύτερο πρωτόκολλο από το I2C. Υπάρχουν κάμερες που μπορούν
να συνδεθούν στο Arduino χρησιμοποιώντας το SPI.
Χρησιμοποιεί ένα master και πολλά slave.
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 35
Πρωτόκολλα επικοινωνίας - SPI
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 36
Πρωτόκολλα επικοινωνίας - SPI
MOSI: Master-Out-Slave-In το master στέλνει
δεδομένα σε ένα slave;
MISO: Master-In-Slave-Out το master λαμβάνει
δεδομένα από το slave;
SCLK: Serial Clock ρυθμίζει την ταχύτητα της
επικοινωνίας;
SS: Slave Select επιλέγει ποια περιφερειακή
συσκευή (slave) θα επικοινωνήσει.
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 37
Πρωτόκολλα επικοινωνίας - SPI
Οι ακροδέκτες στο Arduino για
την σύνδεση του SPI. Το
MOSI, MISO, και SCLK στους
ακροδέκτες 11-13 και πάνω στο
ICSP είναι τα ίδια, έτσι η χρήση
του ICSP δεν απελευθερώνει
τους ακροδέκτες 11-13 για
άλλες χρήσεις. (ICSP in-circuit
serial programming)
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 38
Πρωτόκολλα επικοινωνίας - SPI
Για την γραμμή Slave Select
μπορεί να χρησιμοποιηθεί
οποιοσδήποτε ψηφιακός
ακροδέκτης. Άρα μπορούν να
συνδεθούν 17 (20-3) συσκευές
SPI στο Arduino UNO
Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 39
Ευχαριστώ
για την προσοχή σας! Photo by Dai on Unsplash

More Related Content

Similar to Εισαγωγή στην χρήση των Arduino. Σεμινάριο στην ΔΔΕ Γ Αθήνας

Arduino κόμικ (της Jody Culkin, μετάφραση Άννα Μαραγκουδάκη)
Arduino κόμικ (της Jody Culkin, μετάφραση Άννα Μαραγκουδάκη)Arduino κόμικ (της Jody Culkin, μετάφραση Άννα Μαραγκουδάκη)
Arduino κόμικ (της Jody Culkin, μετάφραση Άννα Μαραγκουδάκη)Georgios Giannopoulos
 
IEEE NTUA SB - Arduino Workshop vol 1
IEEE NTUA SB - Arduino Workshop vol 1IEEE NTUA SB - Arduino Workshop vol 1
IEEE NTUA SB - Arduino Workshop vol 1IEEE NTUA SB
 
εκκολαπτήριο αυγών μπιλλή,μαρκολέφα,κυνηγοπούλου2
εκκολαπτήριο αυγών  μπιλλή,μαρκολέφα,κυνηγοπούλου2εκκολαπτήριο αυγών  μπιλλή,μαρκολέφα,κυνηγοπούλου2
εκκολαπτήριο αυγών μπιλλή,μαρκολέφα,κυνηγοπούλου2Vasso Servou
 
Σχεδίαση αισθητήρα νερού και κατασκευή συστήματος παρακολούθησης υγρασίας και...
Σχεδίαση αισθητήρα νερού και κατασκευή συστήματος παρακολούθησης υγρασίας και...Σχεδίαση αισθητήρα νερού και κατασκευή συστήματος παρακολούθησης υγρασίας και...
Σχεδίαση αισθητήρα νερού και κατασκευή συστήματος παρακολούθησης υγρασίας και...AthanasiosTrigkas
 
Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...
Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...
Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...WROHellas
 

Similar to Εισαγωγή στην χρήση των Arduino. Σεμινάριο στην ΔΔΕ Γ Αθήνας (9)

Arduino κόμικ (της Jody Culkin, μετάφραση Άννα Μαραγκουδάκη)
Arduino κόμικ (της Jody Culkin, μετάφραση Άννα Μαραγκουδάκη)Arduino κόμικ (της Jody Culkin, μετάφραση Άννα Μαραγκουδάκη)
Arduino κόμικ (της Jody Culkin, μετάφραση Άννα Μαραγκουδάκη)
 
Drastiriotita4 v1
Drastiriotita4 v1Drastiriotita4 v1
Drastiriotita4 v1
 
Drastiriotita5 v1
Drastiriotita5 v1Drastiriotita5 v1
Drastiriotita5 v1
 
IEEE NTUA SB - Arduino Workshop vol 1
IEEE NTUA SB - Arduino Workshop vol 1IEEE NTUA SB - Arduino Workshop vol 1
IEEE NTUA SB - Arduino Workshop vol 1
 
Smart home virtuino1(1)
Smart home virtuino1(1)Smart home virtuino1(1)
Smart home virtuino1(1)
 
εκκολαπτήριο αυγών μπιλλή,μαρκολέφα,κυνηγοπούλου2
εκκολαπτήριο αυγών  μπιλλή,μαρκολέφα,κυνηγοπούλου2εκκολαπτήριο αυγών  μπιλλή,μαρκολέφα,κυνηγοπούλου2
εκκολαπτήριο αυγών μπιλλή,μαρκολέφα,κυνηγοπούλου2
 
Σχεδίαση αισθητήρα νερού και κατασκευή συστήματος παρακολούθησης υγρασίας και...
Σχεδίαση αισθητήρα νερού και κατασκευή συστήματος παρακολούθησης υγρασίας και...Σχεδίαση αισθητήρα νερού και κατασκευή συστήματος παρακολούθησης υγρασίας και...
Σχεδίαση αισθητήρα νερού και κατασκευή συστήματος παρακολούθησης υγρασίας και...
 
Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...
Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...
Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...
 
Arduino
ArduinoArduino
Arduino
 

More from cdfanph

Τεχνητή Νοημοσύνη στην Εκπαίδευση: Διαχείριση διαλογικών περιβαλλόντων από το...
Τεχνητή Νοημοσύνη στην Εκπαίδευση: Διαχείριση διαλογικών περιβαλλόντων από το...Τεχνητή Νοημοσύνη στην Εκπαίδευση: Διαχείριση διαλογικών περιβαλλόντων από το...
Τεχνητή Νοημοσύνη στην Εκπαίδευση: Διαχείριση διαλογικών περιβαλλόντων από το...cdfanph
 
Θερμοκρασία Θερμότητα Πρωτοβάθμια.ppt
Θερμοκρασία Θερμότητα Πρωτοβάθμια.pptΘερμοκρασία Θερμότητα Πρωτοβάθμια.ppt
Θερμοκρασία Θερμότητα Πρωτοβάθμια.pptcdfanph
 
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 7η-11η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 7η-11η.pptΔυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 7η-11η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 7η-11η.pptcdfanph
 
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 4η-6η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 4η-6η.pptΔυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 4η-6η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 4η-6η.pptcdfanph
 
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 1η-3η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 1η-3η.pptΔυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 1η-3η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 1η-3η.pptcdfanph
 
Σφάλματα ΕΚΦΕ Αιγάλεω 4 10 2023-εκδ2.pptx
Σφάλματα ΕΚΦΕ Αιγάλεω 4 10 2023-εκδ2.pptxΣφάλματα ΕΚΦΕ Αιγάλεω 4 10 2023-εκδ2.pptx
Σφάλματα ΕΚΦΕ Αιγάλεω 4 10 2023-εκδ2.pptxcdfanph
 
4. Energy_1st Law.ppsx
4. Energy_1st Law.ppsx4. Energy_1st Law.ppsx
4. Energy_1st Law.ppsxcdfanph
 
3. Kinetic.ppsx
3. Kinetic.ppsx3. Kinetic.ppsx
3. Kinetic.ppsxcdfanph
 
2. Thermidom Phases.ppsx
2. Thermidom Phases.ppsx2. Thermidom Phases.ppsx
2. Thermidom Phases.ppsxcdfanph
 
1. Temperat Heat.ppsx
1. Temperat Heat.ppsx1. Temperat Heat.ppsx
1. Temperat Heat.ppsxcdfanph
 
Ιστορία Θερμοδυναμικής τελικό.pptx
Ιστορία Θερμοδυναμικής τελικό.pptxΙστορία Θερμοδυναμικής τελικό.pptx
Ιστορία Θερμοδυναμικής τελικό.pptxcdfanph
 
Οι έννοιες στην Φυσική.pptx
Οι έννοιες στην Φυσική.pptxΟι έννοιες στην Φυσική.pptx
Οι έννοιες στην Φυσική.pptxcdfanph
 
X_rays.ppsx
X_rays.ppsxX_rays.ppsx
X_rays.ppsxcdfanph
 
Reactions1.ppsx
Reactions1.ppsxReactions1.ppsx
Reactions1.ppsxcdfanph
 
Nuclear.ppsx
Nuclear.ppsxNuclear.ppsx
Nuclear.ppsxcdfanph
 
Decays.ppsx
Decays.ppsxDecays.ppsx
Decays.ppsxcdfanph
 
2_1 ΑΤΟΜΙΚΕΣ ΘΕΩΡΙΕΣ.ppsx
2_1 ΑΤΟΜΙΚΕΣ ΘΕΩΡΙΕΣ.ppsx2_1 ΑΤΟΜΙΚΕΣ ΘΕΩΡΙΕΣ.ppsx
2_1 ΑΤΟΜΙΚΕΣ ΘΕΩΡΙΕΣ.ppsxcdfanph
 
1_4 ΔΙΑΣΚΕΔΑΣΜΟΣ ΤΟ Η-Μ ΦΑΣΜΑ.ppsx
1_4 ΔΙΑΣΚΕΔΑΣΜΟΣ ΤΟ Η-Μ ΦΑΣΜΑ.ppsx1_4 ΔΙΑΣΚΕΔΑΣΜΟΣ ΤΟ Η-Μ ΦΑΣΜΑ.ppsx
1_4 ΔΙΑΣΚΕΔΑΣΜΟΣ ΤΟ Η-Μ ΦΑΣΜΑ.ppsxcdfanph
 
1_3 ΑΝΑΚΛΑΣΗ ΚΑΙ ΔΙΑΘΛΑΣΗ.ppsx
1_3 ΑΝΑΚΛΑΣΗ ΚΑΙ ΔΙΑΘΛΑΣΗ.ppsx1_3 ΑΝΑΚΛΑΣΗ ΚΑΙ ΔΙΑΘΛΑΣΗ.ppsx
1_3 ΑΝΑΚΛΑΣΗ ΚΑΙ ΔΙΑΘΛΑΣΗ.ppsxcdfanph
 
ΤΟ ΦΩΣ.ppsx
ΤΟ ΦΩΣ.ppsxΤΟ ΦΩΣ.ppsx
ΤΟ ΦΩΣ.ppsxcdfanph
 

More from cdfanph (20)

Τεχνητή Νοημοσύνη στην Εκπαίδευση: Διαχείριση διαλογικών περιβαλλόντων από το...
Τεχνητή Νοημοσύνη στην Εκπαίδευση: Διαχείριση διαλογικών περιβαλλόντων από το...Τεχνητή Νοημοσύνη στην Εκπαίδευση: Διαχείριση διαλογικών περιβαλλόντων από το...
Τεχνητή Νοημοσύνη στην Εκπαίδευση: Διαχείριση διαλογικών περιβαλλόντων από το...
 
Θερμοκρασία Θερμότητα Πρωτοβάθμια.ppt
Θερμοκρασία Θερμότητα Πρωτοβάθμια.pptΘερμοκρασία Θερμότητα Πρωτοβάθμια.ppt
Θερμοκρασία Θερμότητα Πρωτοβάθμια.ppt
 
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 7η-11η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 7η-11η.pptΔυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 7η-11η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 7η-11η.ppt
 
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 4η-6η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 4η-6η.pptΔυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 4η-6η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 4η-6η.ppt
 
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 1η-3η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 1η-3η.pptΔυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 1η-3η.ppt
Δυνάμεις μεταξύ ηλεκτρικών φορτίων B Λυκείου 1η-3η.ppt
 
Σφάλματα ΕΚΦΕ Αιγάλεω 4 10 2023-εκδ2.pptx
Σφάλματα ΕΚΦΕ Αιγάλεω 4 10 2023-εκδ2.pptxΣφάλματα ΕΚΦΕ Αιγάλεω 4 10 2023-εκδ2.pptx
Σφάλματα ΕΚΦΕ Αιγάλεω 4 10 2023-εκδ2.pptx
 
4. Energy_1st Law.ppsx
4. Energy_1st Law.ppsx4. Energy_1st Law.ppsx
4. Energy_1st Law.ppsx
 
3. Kinetic.ppsx
3. Kinetic.ppsx3. Kinetic.ppsx
3. Kinetic.ppsx
 
2. Thermidom Phases.ppsx
2. Thermidom Phases.ppsx2. Thermidom Phases.ppsx
2. Thermidom Phases.ppsx
 
1. Temperat Heat.ppsx
1. Temperat Heat.ppsx1. Temperat Heat.ppsx
1. Temperat Heat.ppsx
 
Ιστορία Θερμοδυναμικής τελικό.pptx
Ιστορία Θερμοδυναμικής τελικό.pptxΙστορία Θερμοδυναμικής τελικό.pptx
Ιστορία Θερμοδυναμικής τελικό.pptx
 
Οι έννοιες στην Φυσική.pptx
Οι έννοιες στην Φυσική.pptxΟι έννοιες στην Φυσική.pptx
Οι έννοιες στην Φυσική.pptx
 
X_rays.ppsx
X_rays.ppsxX_rays.ppsx
X_rays.ppsx
 
Reactions1.ppsx
Reactions1.ppsxReactions1.ppsx
Reactions1.ppsx
 
Nuclear.ppsx
Nuclear.ppsxNuclear.ppsx
Nuclear.ppsx
 
Decays.ppsx
Decays.ppsxDecays.ppsx
Decays.ppsx
 
2_1 ΑΤΟΜΙΚΕΣ ΘΕΩΡΙΕΣ.ppsx
2_1 ΑΤΟΜΙΚΕΣ ΘΕΩΡΙΕΣ.ppsx2_1 ΑΤΟΜΙΚΕΣ ΘΕΩΡΙΕΣ.ppsx
2_1 ΑΤΟΜΙΚΕΣ ΘΕΩΡΙΕΣ.ppsx
 
1_4 ΔΙΑΣΚΕΔΑΣΜΟΣ ΤΟ Η-Μ ΦΑΣΜΑ.ppsx
1_4 ΔΙΑΣΚΕΔΑΣΜΟΣ ΤΟ Η-Μ ΦΑΣΜΑ.ppsx1_4 ΔΙΑΣΚΕΔΑΣΜΟΣ ΤΟ Η-Μ ΦΑΣΜΑ.ppsx
1_4 ΔΙΑΣΚΕΔΑΣΜΟΣ ΤΟ Η-Μ ΦΑΣΜΑ.ppsx
 
1_3 ΑΝΑΚΛΑΣΗ ΚΑΙ ΔΙΑΘΛΑΣΗ.ppsx
1_3 ΑΝΑΚΛΑΣΗ ΚΑΙ ΔΙΑΘΛΑΣΗ.ppsx1_3 ΑΝΑΚΛΑΣΗ ΚΑΙ ΔΙΑΘΛΑΣΗ.ppsx
1_3 ΑΝΑΚΛΑΣΗ ΚΑΙ ΔΙΑΘΛΑΣΗ.ppsx
 
ΤΟ ΦΩΣ.ppsx
ΤΟ ΦΩΣ.ppsxΤΟ ΦΩΣ.ppsx
ΤΟ ΦΩΣ.ppsx
 

Εισαγωγή στην χρήση των Arduino. Σεμινάριο στην ΔΔΕ Γ Αθήνας

  • 1. Εισαγωγή στην χρήση των Arduino Επιμορφωτικό σεμινάριο “STEM/STEAM/STREAM Εκπαίδευση – Εφαρμογές Ρομποτικής” ΔΔΕ Γ Αθήνας – 3ο Γενικό Λύκειο Αιγάλεω - Βιβλιοθήκη Ανδρίτσαινας. Χ. Δ. Φανίδης Σύμβουλος Φ.Ε. Γ Αθήνας 12/2023
  • 2. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 2 Περιεχόμενα παρουσίασης  Χρήση των ψηφιακών εισόδων-εξόδων του Arduino  Διαμόρφωση εύρους παλμού (Pulse Width Modulation)  Αναλογικές είσοδοι  Αναλογικές είσοδοι – AnalogRead()  Αναλογικές είσοδοι – Εφαρμογή της AnalogRead()  Αναλογικές είσοδοι – Αισθητήρας θερμοκρασίας  Πρωτόκολλα επικοινωνίας
  • 3. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 3 Χρήση των ψηφιακών εισόδων – εξόδων του Arduino Το Arduino έχει 14 ψηφιακές εισόδους/εξόδους. Αυτές μπορούν να δώσουν τάση 0V → LOW ή 5V → HIGH https://makeabilitylab.github.io/physcomp/arduino/led- blink.html#introducing-digital-output
  • 4. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 4 Χρήση των ψηφιακών εισόδων – εξόδων του Arduino Οι εντολές για την χρήση των ψηφιακών εισόδων/εξόδων: pinMode(int pin, int mode) διαμορφώνει ένα συγκεκριμένο ακροδέκτη ως είσοδο (INPUT) ή έξοδο (OUTPUT). digitalRead(int pin) Διαβάζει την ψηφιακή είσοδο από τον συγκεκριμένο ακροδέκτη ως HIGH ή LOW. digitalWrite(int pin, int value) γράφει στον ψηφιακό ακροδέκτη που ορίσαμε HIGH or LOW.
  • 5. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 5 Χρήση των ψηφιακών εισόδων – εξόδων του Arduino void setup() { pinMode(13, OUTPUT); // sets the digital pin 13 as output } void loop() { digitalWrite(13, HIGH); // sets the digital pin 13 on delay(1000); // waits for a second digitalWrite(13, LOW); // sets the digital pin 13 off delay(1000); // waits for a second }
  • 6. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 6 Χρήση των ψηφιακών εισόδων – εξόδων του Arduino int Pin = 8; // Initializing Arduino Pin int Reading; void setup() { pinMode(Pin, INPUT); // Declaring Arduino Pin as an Input } void loop() { Reading = digitalRead(Pin); // Reading status of Arduino digital Pin if(Reading == HIGH) { Serial.println("HIGH"); } if(Reading == LOW) { Serial.println("LOW"); }
  • 7. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 7 Χρήση των ψηφιακών εισόδων – εξόδων του Arduino Αν το σήμα σε μία είσοδο είναι 3 Volts<Vi<5 Volts τότε η είσοδος είναι HIGH ενώ όταν είναι 1,5 Volts<Vi<0 Volts τ’οτε η είσοδος είναι LOW. Η αλλαγή από την μία κατάσταση στην άλλη γίνεται ανάμεσα στο 1,5 Volts -3 Volts, σε τάση που είναι διαφορετική σε κάθε είδος Arduino. https://forum.arduino.cc/t/digital-pin-high-low-voltages/622707/11
  • 8. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 8 Χρήση των ψηφιακών εισόδων – εξόδων του Arduino Σημ. και οι αναλογικές είσοδοι μπορούν να οριστούν ως ψηφιακές είσοδοι/έξοδοι αν αντί του αριθμού του ακροδέκτη χρησιμοποιήσουμε Α0, Α1, Α2 ...Α5 (π.χ. digitalWrite(A2, LOW) ) Οι ακροδέκτες με ~ μπορούν να χρησιμοποιηθούν για την λειτουργία Pulse Width Modulation (PWM) που προσομοιώνει, κατά κάποιο τρόπο, τις ψηφιακές εξόδους σαν αναλογικές.
  • 9. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 9 Διαμόρφωση εύρους παλμού (Pulse Width Modulation) Οι ψηφιακοί ακροδέκτες μπορούν να βγάζουν μια τάση 5V με μεταβαλλόμενη διάρκεια. Π.χ. για κύκλο λειτουργίας 50% (duty cycle 50%) δηλ. για να έχουμε 5V στην μισή διάρκεια της περιόδου - της διάρκειας του κύκλου - (δηλ. η μέση τάση είναι 2,5V) το σήμα είναι
  • 10. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 10 Διαμόρφωση εύρους παλμού (Pulse Width Modulation) Σημ. η διάρκεια του κύκλου – περίοδος (cycle duration) για το Arduino είναι 0,002s. Για να πετύχουμε PWM χρησιμοποιούμε την συνάρτηση analogWrite(pin, value); Το pin είναι ο αριθμός του ακροδέκτη που θα παραχθεί το σήμα. Το value καθορίζει τον κύκλο λειτουργίας και προκύπτει από τον τύπο https://www.circuitbasics.com/how-to-use-pulse-width-modulation-on-the-arduino/
  • 11. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 11 Διαμόρφωση εύρους παλμού (Pulse Width Modulation) https://www.circuitbasi cs.com/how-to-use- pulse-width- modulation-on-the- arduino/
  • 12. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 12 Διαμόρφωση εύρους παλμού (Pulse Width Modulation) int ledPin = 6; int brightness = 0; int fadeAmount = 15; void setup() { pinMode(ledPin, OUTPUT); } void loop() { analogWrite(ledPin, brightness); brightness = brightness + fadeAmount; if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } delay(30); }
  • 13. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 13 Αναλογικές είσοδοι Είναι οι ακροδέκτες από Α0-Α5. Συνδέονται με έναν ADC (Analog to Digital Converter) που μετατρέπει το αναλογικό σήμα από 0-5V σε διάκριτες τιμές. Στις αναλογικές εισόδους μπορούμε να βάλουμε μία αναλογική τάση από 0-5V δηλ. τάση που παίρνει όλες τις πιθανές τιμές από 0-5V. Αναλογικό σήμα δίνουν αισθητήρες ήχου, φωτός, θερμοκρασίας και πίεσης.
  • 14. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 14 Αναλογικές είσοδοι - AnalogRead Είναι οι ακροδέκτες από Α0-Α5. Συνδέονται με έναν ADC (Analog to Digital Converter) που μετατρέπει το αναλογικό σήμα από 0-5V σε διάκριτες τιμές. Στις αναλογικές εισόδους μπορούμε να βάλουμε μία αναλογική τάση από 0-5V δηλ. τάση που παίρνει όλες τις πιθανές τιμές από 0-5V. Αν χρησιμοποιήσουμε την συνάρτηση analogRead() και διαβάσουμε με αυτή την είσοδο, τότε ανάλογα με τα volts στην είσοδο, η συνάρτηση αποδίδει 2n ακέραιες τιμές όπου n είναι τα bits που έχει ο μετατροπέας του μικροελεγκτή από αναλογικό σε ψηφιακό σήμα (ADC converter). Για το Uno R3 έχει 10 bits άρα αποδίδει 210 =1024 τιμές. 0≤ AnalogRead(pin) ≤1023
  • 15. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 15 Αναλογικές είσοδοι - AnalogRead Αν για παράδειγμα o μετατροπέας είχε 2 bit τότε θα χώριζε τα 0-5V σε 4(=22) τμήματα. Δηλ. σε βήματα των 5/4=1,25 V. Η AnalogRead θα έδινε
  • 16. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 16 Αναλογικές είσοδοι - AnalogRead Επειδή τα 5V χωρίζονται σε 1024 τιμές τότε στα Vεισόδου αντιστοιχεί
  • 17. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 17 Αναλογικές είσοδοι – Εφαρμογή της ΑnalogRead
  • 18. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 18 Αναλογικές είσοδοι - Εφαρμογή της AnalogRead int potPin = 0; void setup() { Serial.begin(9600); } void loop() { int reading = analogRead(potPin); Serial.println(reading); delay(500); }
  • 19. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 19 Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας Εφαρμογή με τον ίδιο κώδικα με αισθητήρα θερμοκρασίας (δίνει βέβαια λάθος τιμές)
  • 20. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 20 Αναλογικές είσοδοι - - αισθητήρας θερμοκρασίας Εφαρμογή με σωστό κώδικα με αισθητήρα θερμοκρασίας
  • 21. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 21 Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας Και ο σωστός κώδικας για τον αισθητήρα θερμοκρασίας
  • 22. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 22 Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας Και ο σωστός κώδικας για τον αισθητήρα θερμοκρασίας //TMP36 Pin Variables int sensorPin = 0; void setup() { Serial.begin(9600); //Start the serial connection with the computer //to view the result open the serial monitor } void loop() // run over and over again { //getting the voltage reading from the temperature sensor int reading = analogRead(sensorPin);
  • 23. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 23 Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας int reading = analogRead(sensorPin); // Αν voltage η τάση που δίνει το TMP36 τότε η μετατροπή που κάνει η αναλογική είσοδος είναι: // reading = (voltage *1024)/5.0 // converting that reading to voltage, that the TMP36 gave to pin 0 float voltage = reading * 5.0; voltage /= 1024.0; // i.e. voltage = voltage/1024 // print out the voltage Serial.print(voltage); Serial.println(" volts");
  • 24. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 24 Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας // print out the voltage Serial.print(voltage); Serial.println(" volts"); // now print out the temperature // For TMP36 the output in Volts: V(Volts) = 0,5+0,01*θ // where θ is the temperature in Celsius degrees float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree with 500 mV offset //to degrees ((voltage - 500mV) times 100) Serial.print(temperatureC); Serial.println(" degrees C"); // now convert to Fahrenheit
  • 25. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 25 Αναλογικές είσοδοι - αισθητήρας θερμοκρασίας // now convert to Fahrenheit float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0; Serial.print(temperatureF); Serial.println(" degrees F"); delay(1000); //waiting a second }
  • 26. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 26 Πρωτόκολλα επικοινωνίας Τα Arduino επικοινωνούν με άλλους μικροελεγκτές (Arduino ή Raspeberry), H/Y, αλλά και αισθητήρες χρησιμοποιώντας τρία πρωτόκολλα επικοινωνίας 1) UART - Universal Asyncrhonous Receiver Transmitter (Παγκόσμιος Ασύγχρονος Δέκτης και Εκπομπός) 2) I2C ή Ι2C - Inter-Integrated Circuit (Διαολοκληρωμένο κύκλωμα) 3) SPI - Serial Peripheral Interface (Σειριακή περιφερειακή Διεπαφή) Για κάθε ένα από αυτά τα πρωτόκολλα επικοινωνίας υπάρχουν δίαυλοι (buses) αλλά και οι αντίστοιχοι ακροδέκτες στην πλακέτα του Arduino.
  • 27. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 27 Πρωτόκολλα επικοινωνίας - UART UART - Universal Asyncrhonous Receiver Transmitter (Παγκόσμιος Ασύγχρονος Δέκτης και Εκπομπός) Είναι η Σειριακή Επικοινωνία όπου η πληροφορία ανταλλάσσεται με το ένα bit να ακολουθεί το άλλο. https://docs.arduino.cc/learn/communi cation/uart
  • 28. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 28 Πρωτόκολλα επικοινωνίας - UART
  • 29. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 29 Πρωτόκολλα επικοινωνίας - UART
  • 30. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 30 Πρωτόκολλα επικοινωνίας - I2C Μπορούν πολλοί αισθητήρες να συνδεθούν σε 2 διαύλους. Μπορεί να υπάρχουν και πολλές master συσκευές (multi master – multi slave) https://medium.co m/learning-by- doing-404/i2c- communication- between-rpi-and- arduino- b7064bffe02a
  • 31. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 31 Πρωτόκολλα επικοινωνίας - I2C Κάθε αισθητήρας έχει την δική του μοναδική διεύθυνση. (Συνήθως δίνεται από τον κατασκευαστή αλλά μπορεί και να αλλαχτεί) https://www.elec tronicshub.org/ arduino-i2c- tutorial/
  • 32. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 32 Πρωτόκολλα επικοινωνίας - I2C Το SDA (Serial Data) – Ο δίαυλος που ο master και ο slave στέλνουν και λαμβάνουν δεδομένα SCL (Serial Clock) – Ο δίαυλος που φέρει το σήμα του ρολογιού. Έχει χαμηλότερο ρυθμό μεταφοράς δεδομένων από το SPI https://linuxhint.com/arduino-i2c- communication-pins/
  • 33. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 33 Πρωτόκολλα επικοινωνίας - I2C Οι εντολές για το πρωτόκολλο I2C είναι : Wire.begin() Wire.requestFrom() Wire.beginTransmission() Wire.endTransmission() Wire.write() Wire.available() Wire.read() Wire.SetClock() Wire.onReceive() Wire.onRequest()
  • 34. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 34 Πρωτόκολλα επικοινωνίας - SPI Τύπος σύγχρονης σειριακής επικοινωνίας, που σημαίνει ότι η μεταφορά δεδομένων χρονίζεται με χρήση παλμών ρολογιού. Είναι καλό πρωτόκολλο για μεταφορά δεδομένωνμεταξύ συσκευών που απέχουν λιγότερο από 10 m. Είναι ταχύτερο πρωτόκολλο από το I2C. Υπάρχουν κάμερες που μπορούν να συνδεθούν στο Arduino χρησιμοποιώντας το SPI. Χρησιμοποιεί ένα master και πολλά slave.
  • 35. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 35 Πρωτόκολλα επικοινωνίας - SPI
  • 36. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 36 Πρωτόκολλα επικοινωνίας - SPI MOSI: Master-Out-Slave-In το master στέλνει δεδομένα σε ένα slave; MISO: Master-In-Slave-Out το master λαμβάνει δεδομένα από το slave; SCLK: Serial Clock ρυθμίζει την ταχύτητα της επικοινωνίας; SS: Slave Select επιλέγει ποια περιφερειακή συσκευή (slave) θα επικοινωνήσει.
  • 37. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 37 Πρωτόκολλα επικοινωνίας - SPI Οι ακροδέκτες στο Arduino για την σύνδεση του SPI. Το MOSI, MISO, και SCLK στους ακροδέκτες 11-13 και πάνω στο ICSP είναι τα ίδια, έτσι η χρήση του ICSP δεν απελευθερώνει τους ακροδέκτες 11-13 για άλλες χρήσεις. (ICSP in-circuit serial programming)
  • 38. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 38 Πρωτόκολλα επικοινωνίας - SPI Για την γραμμή Slave Select μπορεί να χρησιμοποιηθεί οποιοσδήποτε ψηφιακός ακροδέκτης. Άρα μπορούν να συνδεθούν 17 (20-3) συσκευές SPI στο Arduino UNO
  • 39. Εισαγωγή στην χρήση Arduino Χ. Δ. Φανίδης 39 Ευχαριστώ για την προσοχή σας! Photo by Dai on Unsplash