Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao
1/67
Prof. Jeferson Jos
e de Lima, MSc
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
Linguagem de Programacao
Introducao
Geracao de C
odigo Automatica
2/67
Prof. Jeferson Jos
e de Lima, MSc
Informac
oes Uteis
Introduc
ao
Arquitetura Microcontrolador Atmega 328X
Arduino Open Source
Linguagem de Programac
ao
https://goo.gl/pH9peO
3/67
Prof. Jeferson Jos
e de Lima, MSc
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
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
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
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
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
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
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
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
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
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
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
Imagens: https://www.circuitar.com.br/
Prof. Jeferson Jos
e de Lima, MSc
11/67
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
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
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
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
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
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
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
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
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
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
21/67
Prof. Jeferson Jos
e de Lima, MSc
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
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
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
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
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
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
27/67
Prof. Jeferson Jos
e de Lima, MSc
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
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
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
29/67
Prof. Jeferson Jos
e de Lima, MSc
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
Producao nacional;
ou...
30/67
Prof. Jeferson Jos
e de Lima, MSc
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
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
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
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
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
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
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
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
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
35/67
Prof. Jeferson Jos
e de Lima, MSc
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
35/67
Prof. Jeferson Jos
e de Lima, MSc
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
36/67
Prof. Jeferson Jos
e de Lima, MSc
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
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
38/67
Prof. Jeferson Jos
e de Lima, MSc
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
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
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
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
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
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
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
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
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
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;
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):
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
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):
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
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;
...
47/67
Prof. Jeferson Jos
e de Lima, MSc
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
48/67
Prof. Jeferson Jos
e de Lima, MSc
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
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);
50/67
Prof. Jeferson Jos
e de Lima, MSc
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
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
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
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
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
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
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
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
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
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
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
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
62/67
Prof. Jeferson Jos
e de Lima, MSc
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
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
64/67
Prof. Jeferson Jos
e de Lima, MSc
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
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
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