Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Documente similare
Lucrarea 10

PowerPoint-Präsentation

PowerPoint-Präsentation

Microsoft Word - 4-Interfete paralele.doc

Universitatea Transilvania Braşov Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Catera de Electronică şi Calculatoare Construcţia şi de

PowerPoint-Präsentation

Lucrarea nr

Ch

Microsoft Word - intro_msp430.doc

PowerPoint-Präsentation

Minicurs CCS C / Aplicatia1 1.Programul CCS C Compiler. Instalare.Creare proiect. Descarcati ultima versiune a programului de

Microsoft Word - Laboratorul 3.doc

Kein Folientitel

PowerPoint Presentation

Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Pu

Cuprins

PowerPoint Presentation

Structura sistemelor de calcul

Microsoft Word - L63 FPGA.doc

Microsoft Word - Programarea Portului Paralel - IBM-PC. .doc

1

PowerPoint Presentation

Controlerul LCD

Lucrarea 11. IoT Internet of Things - Accesul prin Internet la obiecte sau dispozitive simple 1. Obiectivul lucrarii Lucrarea isi propune sa studieze

Înregistrator de temperatură şi umiditate AX-DT100 Instrucţiuni de utilizare

Dot Matrix Display Module and

Variante ale magistralei PCI

Microsoft Word - Prezentare - A4 - cernavoda.doc

Ghid de referinţă rapidă pentru Seria ZT400™

Lucrarea 13. Controlul unor procese complexe printr-o platforma de tip Arduino (continuarea lucrarii 12) 1. Obiectivul lucrarii Lucrarea isi propune s

Cartelele telefonice

Microsoft Word - Prelegere 1 - Bratu C. - Microcontrolerul.doc

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

Lab6LCD

HONEYWELL AWARD

PROCESOARE NUMERICE DE SEMNAL

Inspiron Specificaţii (Battery)

Modul Modbus ASCII SISTEME DE COMUNICATIE CURS 5 - Constantinescu Catalin Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj

METODE PRACTICE DE IMPLEMENTARE A LABORATOARELOR VIRTUALE ONLINE PENTRU DOMENIUL ELECTRONICII SAU AUTOMATICII METHODS FOR THE IMPLEMENTATION OF ONLINE

1. ARHITECTURA MICROPROCESOARELOR 1.1. Microprocesorul. Noțiuni generale Progresele tehnologice și electronice, înregistrate în ultimele decenii, au d

Microsoft Word - CarteC.doc

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

Ghidul Utilizatorului GW210

Indrumator laborator microcontrolere ARDUINO

ep0149

Dispozitiv de deschidere a porţilor batante PKM-C02 Manual de utilizare Atenţie: acest dispozitiv trebuie instalat de către profesionişti calificaţi b

Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

Inspiron Specificaţii

PowerPoint Presentation

Limbaje de Programare Curs 8 – Fisiere

Aplicaţii pe baza modulului WiFi ESP-12. Partea I 1. Introducere. Descrierea plăcii cu WiFi ESP-12 O rețea de dispozitive fizice, vehicole, aparate de

Distribuitor Ethernet

Sisteme de calcul în timp real

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Manual de utilizare Descrierea produsului Structura produsului 1) Butonul SUS (UP) 2) MENIU 3) Butonul JOS (DOWN) 4) Interfața USB 5) Cameră 6) Difuzo

CURS

Programarea şi utilizarea calculatoarelor

Clemă de alimentare Ethernet

Lucrarea nr. 2 Aplicaţii de tip client Mihai IVANOVICI 6 martie 2006 Scopul acestei lucrări este de a vă familiariza cu modulul Python socket şi cu mo

Biomedical Wi-Fi data transmissons

BDV-EF1100

Informatică aplicată TEST GRILA TEST GRILĂ - REZOLVAT 1.Structura de principiu a unui sistem de calcul contine urmatoarele componente principale: A. u

ep0117

Proiectarea Sistemelor Software Complexe

Paradigme de Programare

în Tabletă convertibilă GHID DE UTILIZARE 8085 LKB001X CJB1FH002AZA

PowerPoint Presentation

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

4. Creşterea vitezei de execuţie a algoritmilor intensiv computaţio-nali cu ajutorul coprocesoarelor ataşate, bazate pe structuri logice reconfigurabi

Slide 1

Sisteme cu FPGA şi Soft Processors

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

Vacon 100 FLOW Application Manual

Programarea şi utilizarea calculatoarelor

Microsoft Word - IngineriF_A.DOC

VI. Achiziția datelor în LabVIEW

Nr

Combinăm inovația de generație viitoare cu un design compact, fiabilitate și ușurință în utilizare. Lansăm gama de imprimante edding, în două variante

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

FIŞA DISCIPLINEI

Declararea variabilelor

WorkCentre M123/M128, WorkCentre Pro 123/128, CopyCentre C123/128 Ghid de Configurare Rapidă pentru Reţea

Gateway Cloud Turck

Always leading the pack SEMICONDUCTOR FUNDAMENTAL DL 3155M11R Laborator TIME

Switch wireless Siebo W3004 Manual utilizare (imagine exemplificativă)

OptiPlex 390 Fişă tehnică cu informaţii despre configurare şi funcţii

Microsoft Word - 1-Introducere.doc

Variator lumină wireless Siebo W3006 Manual utiliz are

Guardian2012_RO3

Lab3Functii

S.C. SEEKTRON S.R.L. Fişă de prezentare a produsului EYECAR B1 EYECAR B1 Observer Black Box Dispozitiv inteligent pentru înregistrarea evenimentelor r

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

Microsoft Word - MANUAL_APP_ROMPOS_V7.docx

客厅电脑 酷影Q1000

Comanda si supravegherea centralelor termice de putere

SRS-BTS50_QSG_ro

Microsoft Word - Tema 06 - Convertoare analog-numerice.doc

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Settlement participant system

Transcriere:

Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de dezvoltare bazată pe un microcontroller ATmega 328P pe 8 biți cu 32kB memorie flash. Placa de dezvoltare conține: 14 pini digitali de intrare/ieșire D0...D13 (6 ieșiri pot fi programate cu PWM - Pulse With Modulation, pinii 3,5,6,9,10,11) 6 pini analogici cu o rezoluție de 10 biți (A0... A5), măsoară tensiuni între 0 5V în funcție de pinul AREF Rx/TX - o linie seriala cu nivele logice TTL 2 pini pentru magistrala I 2 C 2 timere pe 8 biți 1 timer pe 16 biți Un conector USB pentru conectarea la calculator pentru transferul codului în controler utilizând o aplicație specializată 1

2 Regiștri Arduino Microcontrolerul ATmega pune la dispoziția programatorului mai porturi paralele care permit manipularea rapidă și low-level a pinilor de I/O ai microcontrolerului. Porturile paralele pot fi configurate software pentru a fi de intrare sau de ieșire. Microcontrolerul ATmega 328P pune la dispoziție 3 astfel de porturi numite: - Port B (pinii digitali de la 8 la 13) - Port C (pinii analogici de la A0 la A5) - Port D (pinii digitali de la 0 la 7) Fiecare port este controlat de către 3 registre: - Registrul DDRx (Data Direction Register) determină dacă pinul este de INPUT sau OUTPUT (0 pentru INPUT, 1 pentru OUTPUT). Fiecare bit din acest registru controlează un pin din portul respectiv. x semnifică numele portului; - PORTx (Data Register) registru de date care permite citire/ scriere informațiilor pe portul respectiv; - PINx (Read Register) - registru care permite citirea unui port de intrare. Fiecare bit din acești registri corespunde unui singur pin. În figurile următoare este prezentat cum sunt așezații biții pentru fiecare pin corespunzător. 2.1 PORTB - - Pin 13 Pin 12 Pin 11 Pin 10 Pin 9 Pin 8 2.2 PORTD Pin 7 Pin 6 Pin 5 Pin 4 Pin 3 Pin 2 Pin 1 Pin 0 2.3 PORTC - - A5 A4 A3 A2 A1 A0 Informații suplimentare se găsesc în documentația ATmega secțiunea 18, pagina 122-130. 3 Interfața Arduino IDE(Integrated Development Enviroment) Permite dezvoltarea de aplicații pentru arduino, compilarea acestora și încărcarea în memoria Flash a controlerului. Memoria Flash se scrie în condiții speciale (comutată în starea de scriere) și datele sunt păstrarea în memorie și atunci când se întrerupe alimentarea modulului. Aplicația se va scrie și se va compila pe calculator (pe o platforma), iar rularea se va face de pe controler (pe altă platformă) de aceea după fiecare compilare noua aplicație trebuie înscrisă în controler pentru a rula. În controler la un moment dat rulează doar o aplicație care trebuie să conțină o buclă care să nu se termine niciodată deoarece o dată terminată aplicația, controlerul nu mai are ce executa (nu exista sistem de 2

operare). Revenirea din această stare se poate face doar după operația de reset. De aceea orice aplicație pe controler trebuie să conțină o funcție de inițializare care se execută o singură dată la pornire și o funcție care se va executa la infinit. Funcția main a unei aplicații pe controler arată astfel: void setup() //configurare regiștrii controler, se executa o singură dată int main() setup(); while (1) //codul care se dorește executat // sau apelul funcției loop () În cadrul interfeței Arduino IDE este folosit limbajul C pentru scrierea codului aplicației, iar acesta se poate scrie codul în două moduri: - scriind complet codul cum este cel prezentat mai sus inclusiv funcția main() - folosind funcțiile create automat de interfață și anume: funcția de configurare numită setup() și funcția care se execută în buclă numită loop(). În acest caz utilizatorul nu mai vede funcția main iar codul din cadrul funcției loop() este apelat in cadrul buclei la infinit astfel că aceasta nu trebuie scrisă și în interiorul acesteia. Pentru compilarea unei aplicații se poate accesa din meniu intrarea Sketch-> Verify/Compile. Dacă compilarea a fost cu succes se va crea automat un fișier cod pentru arduino care poate fi încărcat în controler folosind comanda Sketch->Upload. În cadrul acestei interfețe se poate scrie ușor funcții asemănătoare cu funcțiile inport/outport folosita pe un calculator cu procesoare de tip Intel. Prototipurile celor doua funcții ar putea fi (deoarece controlerul este pe 8 biți avem doar funcția care lucrează pe byte): void outportb(unsigned char portaddress, unsigned char value) portaddress = value; unsigned char inportb(unsigned char portaddress) return portaddress; 4 Probleme Problema 1. Pe placa de extensie de la arduino există 4 LED-uri conectate pe pinii 10, 11, 12, 13. Să se scrie o aplicație care permite aprinderea acestor 4 LED-uri. Se va analiza schema electrică pentru a vedea modul de conectare al acestor pini. 3

Codul corespunzător pentru această problemă ar putea fi: void setup() DDRB = 0x0FF; int main() setup(); PORTB = 0x00; while (1) //configurare direcție liniilor din registrul B ca și ieșire //unde sunt legate cele 4 LED-uri //aprinderea celor 4 LED-uri Problema 2. Să se modifice aplicația anterioară astfel încât la apăsarea butonului S1 (conectat pe pinul A1 din portul C) cele 4 LED-uri să se aprindă iar la apăsarea butonului S2 (conectat pe pinul A2 din portul C) cele 4 LED-uri să se stingă. Problema 3. Să se modifice aplicația 2 astfel încât ledurile să comute între următoarele 2 stări (la apăsarea celor 2 butoane): D4 D3 D2 D1 X - - X - X X X Problema 4. Să se scrie un program care afișează pe cei 4 digiți cu 7 segmente de pe shield-ul de învățare numărul semi-grupei. Pentru comanda celor 4 digiți avem la dispoziție 2 circuite de memorare (latch-uri 74HC595) legate în serie și 3 linii de comandă: - Linia LCHCLK activă pe LOW permite selectarea celor 2 latch-uri (Port D bit 4) - Linia SFTCLK este linia de ceas pentru programarea celor 2 latch-uri (Port D bit 7) - Linia SDI este linia de date (Port B bit 0) După selectarea circuitului se transmite pe rând 2 octeți. Primul octet conține valoarea care se va afișa pe led-uri și al doilea octet specifică digitul pe care se va afișa valoarea dorită. Cei doi octeți se vor transmite bit cu bit începând cu cel mai semnificativ bit. În primul byte sunt codificate cele 7 segmente ale digitului plus punctul iar în al doilea byte în partea mai puțin semnificativă se specifică digitul pentru care este destinat primul byte, astfel: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 punct g f e d c b a Byte 2 - - - - Digit 4 Digit 3 Digit 2 Digit 1 Valoarea 1 pe digitul corespunzător va specifica digitul dorit. Protocolul de comunicație este: 1. Se selectează cele două latch-uri (Linie LCHCLK pe LOW) și se pune linia de date SDI pe LOW; 2. Se pune linia SFTCLK pe LOW; 3. Se pune bitul dorit pe linia SDI; 4

4. Se pune linia SFTCLK pe HIGH; 5. Se repetă pașii 2-4 pentru toți biții din cei doi byte; 6. Se pune linia SDI pe LOW; 7. Se de-selectează circuitele punând linia LCHCLK pe HIGH. În bucla principală, la viteză maximă, se vor reafișa valorile de pe cei 4 digiți. 5