arduino və mikrokontrollerlərin proqramlaşdırılmasına giriş

22
ARDUINO VƏ MIKROKONTROLLERLƏRIN PROQRAMLAŞDIRILMASINA GIRIŞ TƏQDIMATÇI : RƏŞID ƏLIYEV

Upload: rashid-aliyev

Post on 28-Jan-2018

72 views

Category:

Devices & Hardware


0 download

TRANSCRIPT

ARDUINO VƏ MIKROKONTROLLERLƏRINPROQRAMLAŞDIRILMASINA GIRIŞTƏQDIMATÇI: RƏŞID ƏLIYEV

MIKROKONTROLLERLƏR NƏDIR?

• İnteqral sxem daxilində yerləşən kiçik və avtonom kompüter;

• Çox vaxt periferik qurğulardan ibarət olur;

• Müxtəlif paketlər halında mövcud olur;

• Müxtəlif ölçü və gücdə növlər mövcuddur;

ƏTRAF MÜHITLƏ ƏLAQƏ

• Robotlar və qurğular ətraf mühitlə əlaqəyə keçmək, baş verənləri hiss etmək,

maneə və hədəfləri görmək üçün müxtəlif sensorlardan istifadə edirlər;

• Mikrokontrollerər bu əlaqənin baş verməsində iştirak edir;

• Minlərlə müxtəlif təyinatlı sensorlar mövcuddur;

SENSORLAR

TƏZYIQ VƏ SIXILMA GPS/YERLƏŞMƏ GIROSKOP

SENSORLAR

TƏKƏR ENKODERLƏRIİNFRAQIRMIZI MƏSAFƏ

SENSORU AKSELEROMETR

SENSORLAR

ULTRASƏS MƏSAFƏ SENSORU NƏMIŞLIK SENSORU QAZ SENSORU

ARDUINO

• ATMega328 üzərində mühəndislik

platası;

• Gərginlik Tənzimləyici;

• Proqramlayıcı (Proqramator);

• USB Portı;

• Cəmi $10 dəyərində!

C DILINDƏ PROQRAMLAŞDIRMA

void setup() {

// Setup stuff to only run once at the beginning

}

void loop() {

// This function gets called indefinitely

}

ƏLAVƏLƏR

• ADC - Analoqn Rəqəmsala Çevirici (Analog-to-Digital Converter);

• TMRx – Zman və Say sayğacları (Counters/Timers);

• PWM – Pulse Width Modulation (CPP/PWM);

• Serial Portlar (COM/UART);

• Və daha çox digər imkanlar...

RƏQƏMSAL I/O (YAZMA/OXUMA)

• Yalnız YÜKSƏK (HIGH) və ALÇAQ (LOW) qiymətlər (1/0);

• Hər bir «pin»in giriş və ya çıxış rejimində işləyə bilməsi tənzim oluna bilir:

• pinMode (pinNumber, pinState)

• pinMode (13, İNPUT);

• pinMode (13, OUTPUT);

• Yazma: digitalWrite (pinNumber, HIGH/LOW);

• Oxuma: Int val = digitalRead (pinNumber);

ARDUINO KODU ÜZƏRINDƏ NÜMUNƏ

int ledPin = 13;

void setup() {

// Rəqəmsal pin-i çıxış kimi tənzimlə:

pinMode(ledPin, OUTPUT);

} void loop() {

// Pin-ə yüksək (HİGH) qiymət ver (1)

digitalWrite(ledPin, HIGH);

}

SERIAL İNTERFEYS (UART)

• Digər Mikrokontrollerlər və ya kompyüterlər ilə əlaqyəyə gimək üçün;

• Asinxron kommunikasiya;

• Aruinonun mövcud kitabxanaları bu işi asanlaşdırmağa köməklik edir:

• Serial.begin(baudRate)

• Serial.println(”Göndəriləcək mətn”)

• int bytesWaiting = Serial.Availible()

• Char incomingData = Serial.read()

ARDUINO KODU ÜZƏRINDƏ NÜMUNƏ

void setup() {

Serial.begin(9600);

} void loop() {

Serial.println(”Mətn daxil et”);

while(Serial.availible() < 1) {

char input = Serial.read();

}

}

ANALOQ SIQNALIN RƏQƏMSALA ÇEVRILMƏSI (ADC)

• Elektrik cərəyanını Analoq siqnal

halında hər hansı bir pindən qəbul

etmək;

• Rəqəmsal halınını proqrama

qaytarmaq;

• Bitlərin qiymətindən aşlı olaraq

dəqiqlik dəyişir.

İŞIQ SENSORLARI

• Fotorezistorlar və Fotodiodlar;

• İstifadəsi çox sadədir;

• Müqaviməti işıqlanmadan aşlı olaraq dəyişir;

• Sensordakı cərəyanı ADC ilə çevirərək ölçmək olar;

ARDUINO KODU ÜZƏRINDƏ NÜMUNƏint sensorPin = 0;

void setup() {

Serial.begin(9600); // Serial girişi aç

} void loop() {

// sensorun göstəricisini oxu:

sensorValue = analogRead(sensorPin);

// Sensorun göstəricisini əks etdir

Serial.println(sensorValue);

}

PWM MODULLARI (CCP)

• Çıxış pin-lərində PWM siqnallarının yaradılması;

• Giriş pin-lərində PWM siqnallarının ölçülməsi;

• CCP = Capture/Compare

• Bəs PWM dəqiq olaraq nədir?

PULSE WIDTH MODULATION (PWM)

• Analoq qiymətləri bir rəqəmsal giriş/çıxış pini üzərindən ötürür;

• PWM siqnalı 2 hissədən ibarətdir:

• Dövr (Period): Siqnalın təkrarlanma dövrü (intervalı);

• Pulsun Eni (Pulse Width): Siqnalın 0 (LOW) olmayana qədər neçə müddət 1 (HIGH)

olması;

• İş sikli: siqnalın 1 (HIGH) olması müddətinin %-i, və ya Puls/Dövr;

TSIKL = PULS X 100 / DÖVR

PWM-IN ROBOTOTEXNIKADA TƏTBIQI

RƏŞID ƏLIYEV055 4455400

[email protected]