Sei sulla pagina 1di 80

Informac

oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Minicurso Arduino Basico


Teoria e Pratica
Professor: Jeferson Jose de Lima,MSc
jefersonlima@utfpr.edu.br
Departamento de Engenharia Eletr
onica (DAELE)

1/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Sumario
1

Informac
oes Uteis

Introducao
A Atmel Corporation

Arquitetura Microcontrolador Atmega 328X

Arduino Open Source


Esquematico
Ferramentas de Compilacao e Simulacao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Linguagem de Programacao
Introducao
Geracao de C
odigo Automatica
2/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Nuvem com materiais e c


odigos do curso:

https://goo.gl/pH9peO

3/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

A Atmel Corporation

O que e Arduino?
Arduino e uma plataforma de prototipagem eletr
onica de hardware livre e
de placa u
nica, projetada com um microcontrolador Atmel AVR com
suporte de entrada/sada embutido, uma linguagem de programacao que
tem origem em Wiring, e e essencialmente C/C++. O objetivo do
projeto e criar ferramentas que sao acessveis, com baixo custo, flexveis e
faceis de se usar por artistas e amadores.

4/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

A Atmel Corporation

A Atmel:

www.atmel.com

5/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

A Atmel Corporation

PIC ou Arduino?

6/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Datasheet

7/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

8/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

C
odigo aberto: Hardware e Software..

9/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Bibliotecas Arduino:
https://www.arduino.cc/en/Reference/Libraries
https://github.com/adafruit
https://learn.adafruit.com/
adafruit-all-about-arduino-libraries-install-use/
arduino-libraries
...

10/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Bibliotecas Arduino:
https://www.arduino.cc/en/Reference/Libraries
https://github.com/adafruit
https://learn.adafruit.com/
adafruit-all-about-arduino-libraries-install-use/
arduino-libraries
...

10/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Bibliotecas Arduino:
https://www.arduino.cc/en/Reference/Libraries
https://github.com/adafruit
https://learn.adafruit.com/
adafruit-all-about-arduino-libraries-install-use/
arduino-libraries
...

10/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Bibliotecas Arduino:
https://www.arduino.cc/en/Reference/Libraries
https://github.com/adafruit
https://learn.adafruit.com/
adafruit-all-about-arduino-libraries-install-use/
arduino-libraries
...

10/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Entendendo o diagrama da placa Arduino UNO 1 :

Imagens: https://www.circuitar.com.br/
Prof. Jeferson Jos
e de Lima, MSc

11/67

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Esquem
atico:
P
agina https://www.arduino.cc/en/Main/ArduinoBoardUno

12/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

13/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

14/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

15/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

16/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Conectores USB:

17/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Protec
ao contra curto-circuito:

18/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Protec
ao contra est
atica:

19/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

20/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Microcontrolador Atmega 328:

21/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Oscilador Externo:

22/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Conector Gravador:

23/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Alimentac
ao:

24/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Alimentac
ao:

25/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Seletor de tens
ao:

26/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Explorando o Arduino UNO, no EAGLE...

27/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Exerccio de Fixac
ao:
Perguntas
Meu arduino nao liga, o que pode ser?
Quero alimentar o arduino numa bateria de 40 volts, posso?

28/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Exerccio de Fixac
ao:
Perguntas
Meu arduino nao liga, o que pode ser?
Quero alimentar o arduino numa bateria de 40 volts, posso?

28/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Pensando aqui... e se eu quisesse


montar minha propria placa?

29/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Pensando aqui... e se eu quisesse


montar minha propria placa?

Producao nacional;
ou...

30/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Compiladores:
Atmel Studio;
X Arduino IDE;
X Compilador Online;
Geracao Automatica de C
odigo (MATLAB/SIMULINK);

31/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Compiladores:
Atmel Studio;
X Arduino IDE;
X Compilador Online;
Geracao Automatica de C
odigo (MATLAB/SIMULINK);

31/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Compiladores:
Atmel Studio;
X Arduino IDE;
X Compilador Online;
Geracao Automatica de C
odigo (MATLAB/SIMULINK);

31/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Compiladores:
Atmel Studio;
X Arduino IDE;
X Compilador Online;
Geracao Automatica de C
odigo (MATLAB/SIMULINK);

31/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Compiladores: Atmel Studio


...

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

www.atmel.com/...
Prof. Jeferson Jos
e de Lima, MSc

32/67
SEA 2016: Semana de Eletr
onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

// Programacao Wiring
void setup () {
// Configura pino 13 saida
pinMode (13 , OUTPUT ) ;
}
// loop principal
void loop () {
// pino 13 nivel alto
digitalWrite (13 , HIGH ) ;
// aguarda 1 segundo
delay (1000) ;
// pin 13 nivel baixo
digitalWrite (13 , LOW ) ;
// aguarda 1 segundo
delay (1000) ;
}

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

// Programacao C C ++
# define F_CPU 16000000 L //
oscillator
# include < avr / io .h >
# include < util / delay .h >
int main ( void ) {
DDRB = 0 b10000000 ;
while (1) {
PORTB = 0 b10000000 ;
_delay_ms (1000) ;
// aguarda 1 segundo
PORTB = 0 b00000000 ;
_delay_ms (1000) ;
// aguarda 1 segundo
}
}

33/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

// Programacao Wiring
void setup () {
// Configura pino 13 saida
pinMode (13 , OUTPUT ) ;
}
// loop principal
void loop () {
// pino 13 nivel alto
digitalWrite (13 , HIGH ) ;
// aguarda 1 segundo
delay (1000) ;
// pin 13 nivel baixo
digitalWrite (13 , LOW ) ;
// aguarda 1 segundo
delay (1000) ;
}

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

// Programacao C C ++
# define F_CPU 16000000 L //
oscillator
# include < avr / io .h >
# include < util / delay .h >
int main ( void ) {
DDRB = 0 b10000000 ;
while (1) {
PORTB = 0 b10000000 ;
_delay_ms (1000) ;
// aguarda 1 segundo
PORTB = 0 b00000000 ;
_delay_ms (1000) ;
// aguarda 1 segundo
}
}

33/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

34/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Compiladores: Arduino IDE.

35/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Compiladores: Arduino IDE.

35/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Compiladores: Arduino IDE.

36/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

pratica ...

37/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

AutoDesk Circuit : https://circuits.io


Simulacao, PCB,Produtos, ex.: circuit scribe.

38/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

pratica ...

39/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Exemplo Blink:
void setup () {
// Configura pino 13 saida
pinMode (13 , OUTPUT ) ;
}
// loop principal
void loop () {
// pino 13 nivel alto
digitalWrite (13 , HIGH ) ;
// aguarda 1 segundo
delay (1000) ;
// pin 13 nivel baixo
digitalWrite (13 , LOW ) ;
// aguarda 1 segundo
delay (1000) ;
}

40/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Esquem
atico
Ferramentas de Compilac
ao e Simulac
ao
Compilador Atmel Studio
Arduino IDE
Compilador On-Line

Exemplo Blink:
void setup () {
// Configura pino 13 saida
pinMode (13 , OUTPUT ) ;
}
// loop principal
void loop () {
// pino 13 nivel alto
digitalWrite (13 , HIGH ) ;
// aguarda 1 segundo
delay (1000) ;
// pin 13 nivel baixo
digitalWrite (13 , LOW ) ;
// aguarda 1 segundo
delay (1000) ;
}

40/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

O C
odigo do Programa:
O wiring utiliza-se de estruturas de C / C++.
Estrutura basica:
# include < biblioteca .h > // bibliotecas
int A =0;
/* inicia variaveis
aqui comentario linhas */
void setup () {
...
}
void loop () { // programa principal
int B = teste ( A ) ;
}
int teste ( int RecebeA ) { // fucao teste
RecebeA = RecebeA +1;
return RecebeA ;
}
Prof. Jeferson Jos
e de Lima, MSc

41/67

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Vari
avel

42/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Operadores:
Operadores aritmeticos:
+
adicao

subtracao
multiplicacao
/
divisao

Operadores l
ogicos:
&&
conjuncao
||
disjuncao
==
igualdade
!=
desigualdade
!
negacao
>
maior que
<
menor que
>= maior ou igual a
<= menor ou igual a

Operadores de atribuicao:
=: atribui um valor a uma variavel.

43/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Operadores:
Operadores aritmeticos:
+
adicao

subtracao
multiplicacao
/
divisao

Operadores l
ogicos:
&&
conjuncao
||
disjuncao
==
igualdade
!=
desigualdade
!
negacao
>
maior que
<
menor que
>= maior ou igual a
<= menor ou igual a

Operadores de atribuicao:
=: atribui um valor a uma variavel.

43/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Func
ao:
Declarando Funcao:
int arg0 = 0;
int funcao ( int arg1 , int arg2 ) {
...
return arg1 + arg2 ;
}

Funcao void:
void funcao () {
...
arg0 = arg0 +1;
...
}

Chamando Funcao:
void loop () {
...
a = funcao (3 ,5) ;
...
}
44/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Func
ao:
Declarando Funcao:
int arg0 = 0;
int funcao ( int arg1 , int arg2 ) {
...
return arg1 + arg2 ;
}

Funcao void:
void funcao () {
...
arg0 = arg0 +1;
...
}

Chamando Funcao:
void loop () {
...
a = funcao (3 ,5) ;
...
}
44/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Estruturas de Controle:
Comando while: Enquanto(Sentenca):
int i =0;
while ( i <= 10) {
...
i = i +1;
}
i =0;

Comando for : repita ate(Sentenca):


int i =0;
for ( i =0; i <=10; i ++) {
...
}
45/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Estruturas de Controle:
Comando if :Se(Sentenca):

Comando if-else: Se(Sentenca),


senao:

int i =0;
int b =0;

int i =0;
int b =0;

i =3/4*2;
if ( i > 0.3) {
b = 2;
...
}
...

i =3/4*2;
if ( i > 0.3) {
b = 2;
...
}
else {
b = 2;
...
}
...
46/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Estruturas de Controle:
Comando if :Se(Sentenca):

Comando if-else: Se(Sentenca),


senao:

int i =0;
int b =0;

int i =0;
int b =0;

i =3/4*2;
if ( i > 0.3) {
b = 2;
...
}
...

i =3/4*2;
if ( i > 0.3) {
b = 2;
...
}
else {
b = 2;
...
}
...
46/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Bibliotecas:
Pasta library diret
orio Arduino:
# include < biblioteca .h >
byte a =0;
...

Pasta library diret


orio do projeto:
# include " biblioteca . h "
byte a =0;
...

47/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Entradas e Sadas Digitais:

48/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Func
oes para Entradas e Sadas digitais
Configurar entrada/sada digital:
Sintaxe:
void pinMode(pino, modo);
Modo de operac
ao:
INPUT: Entrada digital;
INPUT PULLUP: Entrada digital com resistor de pull-up (ligado ao
VCC) interno habilitado;
OUTPUT: Sada digital: 20k;

49/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Exerccio Fixac
ao:
Blinkled, exemplo, 1Hertz.
Dica: Comando delay(milisegundos);

Posso ligar o led direto na porta digital sem led? NAO

50/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Func
oes para Entradas e Sadas digitais
Le entrada digital:
Sintaxe:
int digitalRead(pino);
Modo de operac
ao:
Retorna HIGH ou LOW.

51/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Exerccio de fixac
ao: Ativar
resistores de Pull-Up em porta
Anal
ogica? depurar C
odigo:
void setup () {
pinMode ( A0 , INPUT_PULLUP ) ;
}
void loop () {
delay (1000) ;
int botao = digitalRead ( A0 ) ;
}

52/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Func
ao de Entradas e Sadas Anal
ogicas
O conversor A/D do microcontrolador ATmega328 possui 10 bits de resolucao, a sua tensao de entrada pode variar de 0 V ate o valor de VCC e
possui referencia interna selecionavel
Reslucao:
Vref
2n
Vref : tensao de referencia do conversor A/D;
n: n
umero de bits do conversor;
resolucao =

Exerccio Fixacao:
Para tesao de referencia de 1,1V e conversor de 10 bits, qual a resolucao?

53/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Func
ao de Entradas e Sadas Anal
ogicas
Configura tensao referencia:
Sintaxe:
void analogReference(tipo);
Tipo de operac
ao:
DEFAULT: a tens
ao padr
ao para convers
ao e a tens
ao de alimentac
ao da
placa. 5 V para placas alimentadas com 5 V e 3,3 V para placas alimentadas
com 3,3 V;
INTERNAL: referencia interna de 1,1V no Atmega168 e Atmega328, e 2,56
V no ATmega8;
INTERNAL1V1: referencia de 1,1V, apenas no Arduino Mega;
INTERNAL2V56: referencia interna de 5,6 V, apenas no Arduino Mega;
EXTERNAL: referencia de tens
ao aplicada no pino AREF (valor entre 0 e
5V).
54/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Func
ao de Entradas e Sadas Anal
ogicas
Le entrada Analogica:
Sintaxe:
int analogRead(pino);
Modo de operac
ao:
Como conversor A/D e de 10 bits, o valor retornado por esta funcao estara
na faixa de 0 a 1023 conforme o valor presente no pino.
Tempo de leitura da A/D
O tempo para leitura pela funcao analogRead() e por volta de 100 micro
segundos para Arduino UNO.

55/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Func
ao de Entradas e Sadas Anal
ogicas
Sada PWM (Pulse Width Modulation):
O PWM e uma onda quadrada de frequencia fixa e com duty cycle conforme valor passado pela funcao. A frequencia dessa onda, na maioria
dos pinos e em tordo de 490 Hz, porem, os pinos 5 e 6 da Arduino UNO
operam em 980 Hz.
Sintaxe:
void analogWrite(pino, valor);
valor:
O valor deve ser de 0 a 255 onde com 0 a sada permanece sempre em
nvel baixo e 255 a sada permanece sempre em nvel alto

56/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Func
ao de Entradas e Sadas Anal
ogicas
Sada PWM:
Sintaxe:
void analogWrite(pino, valor);


duty cycle
Vout =
V cc
100
ou


valor
V cc
Vout =
255

57/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Exemplo:
int ledPin = 3; // pino do led
int analogPin = 0; // pino para leitura do potenciometro
int val = 0; // variavel para armazenar o valor lido
void setup () {
pinMode ( ledPin , OUTPUT ) ; // configura pino como saida
}
void loop () {
val = analogRead ( analogPin ) ; // le o valor analogico
analogWrite ( ledPin , val / 4) ; // aciona led com o valor analogico lido
// dividido por 4 para ajustar ao valor
// maximo que pode ser atribuido a funcao
}
58/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Comunicac
ao Serial
Configurar portas seriais:
Sintaxe:
Serial.begin(speed);
Serial.begin(speed, config);
Modo de configurac
ao:
SERIAL 5N1 SERIAL 6N1
SERIAL 5N2 SERIAL 6N2
SERIAL 5E1 SERIAL 6E1
SERIAL 5E2 SERIAL 6E2
SERIAL 5O1 SERIAL 6O1
SERIAL 5O2 SERIAL 6O2

SERIAL
SERIAL
SERIAL
SERIAL
SERIAL
SERIAL

7N1
7N2
7E1
7E2
7O1
7O2

SERIAL
SERIAL
SERIAL
SERIAL
SERIAL
SERIAL

8N1 (padrao)
8N2
8E1
8E2
8O1
8O2
59/67

Prof. Jeferson Jos


e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Comunicac
ao Serial
Verifica buffer serial:
A quantidade maxima de bytes no buffer e 64.
Sintaxe:
int Serial.available();
Par
ametro
Nao passa nenhum parametro.
Retorno
O primeiro byte disponvel no buffer da serial. Retorna -1 caso n tenha
dado disponvel.
60/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Comunicac
ao Serial
Verifica buffer serial:
A quantidade maxima de bytes no buffer e 64.
Sintaxe:
long Serial.print(val) long Serial.print(val, format)
Par
ametro
val:valor para ser escrito na serial - qualquer tipo de dado. format: base
numerica para tipos inteiros ou a quantidade de casas decimais
Retorno
Retorna a quantidade de bytes escritos
61/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Extra: Sensor de Temperatura CPU.


ATmega168A : Yes
ATmega168P : Yes
ATmega328 : Yes
ATmega328P : Yes
ATmega1280 (Arduino Mega) : No
ATmega2560 (Arduino Mega 2560) : No
ATmega32U4 (Arduino Leonardo) : Yes

62/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

// Internal Temperature Sensor ATmega328 .


void setup () {
Serial . begin (9600) ;
}
void loop () {
Serial . println ( GetTemp () ,1) ;
delay (1000) ;
}
double GetTemp ( void ) {
unsigned int wADC ;
double t ;
ADMUX = ( _BV ( REFS1 ) | _BV ( REFS0 ) | _BV ( MUX3 ) ) ;
ADCSRA |= _BV ( ADEN ) ; // enable the ADC
delay (20) ;
ADCSRA |= _BV ( ADSC ) ; // Start the ADC
while ( bit_is_set ( ADCSRA , ADSC ) ) ;
t = ( wADC - 324.31 ) / 1.22;
return ( t ) ; // The returned degrees Celsius .
}
63/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Extra: Armazenamento EEPROM:


# include < EEPROM .h >
# define LED 11
void setup () {
for ( int i = 0; i < 16; i ++) {
EEPROM . write (i , i * i ) ;
}
}
void loop () {
for ( int i = 0; i < 16; i ++) {
byte leitura = EEPROM . read ( i ) ;
analogWrite ( LED , leitura ) ;
delay (50) ;
}
delay (1000) ;
}

64/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Extra: Tons:
# define BUZZER 9
int notas [] = {524 , 588 , 660 , 699 , 785 , 881 , 989};
void setup () {
pinMode ( BUZZER , OUTPUT ) ;
}
void loop () {
for ( int i = 0; i < 7; i ++) {
tone ( BUZZER , notas [ i ] ,1000) ;
delay (1000) ;
}
delay (1000) ;
}

65/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

Prototipagem Rapida (Geracao de C


odigo Automatico)3 :
Aplicacoes;
Prototipagem Rapida: Configuracao;
Prototipagem Rapida: Exemplo;
compilar;
externo;

Embedded Code Generation


Prof. Jeferson Jos
e de Lima, MSc

66/67
SEA 2016: Semana de Eletr
onica: Minicurso Arduino B
asico


Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao

Introduc
ao
Gerac
ao de C
odigo Autom
atica

http://www.embarcados.com.br/arduino-entradasaidas-digitais/ Refer
encias

67/67
Prof. Jeferson Jos
e de Lima, MSc

SEA 2016: Semana de Eletr


onica: Minicurso Arduino B
asico

Potrebbero piacerti anche