AULA 1 - Microcontroladores - Técnico: mudanças entre as edições
imported>Fargoud |
imported>Fargoud Sem resumo de edição |
||
| (68 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 1: | Linha 1: | ||
[[MCO1870321| << Página do curso ]] | |||
=Introdução aos Microcontroladores= | =Introdução aos Microcontroladores= | ||
| Linha 7: | Linha 12: | ||
=A plataforma Arduíno= | =A plataforma Arduíno= | ||
(Extraído da apostila [[media: apostilaArduino1.pdf| Curso de Arduíno]], de Álvaro Justen e do curso | (Extraído da apostila [[media: apostilaArduino1.pdf| Curso de Arduíno]], de Álvaro Justen e do curso [http://www.oficinaderobotica.ufsc.br Programação Básica em Arduíno], UFSC) | ||
Arduino 1 é um projeto que engloba software e hardware e tem como objetivo fornecer uma plataforma fácil | Arduino 1 é um projeto que engloba software e hardware e tem como objetivo fornecer uma plataforma fácil | ||
para prototipação de projetos interativos, utilizando um microcontrolador. | para prototipação de projetos interativos, utilizando um microcontrolador. | ||
O projeto do Arduino teve início em 2005 na cidade de Ivrea, Itália. | |||
O Arduino é composto por uma placa com microcontrolador Atmel AVR e um ambiente de programação baseado em [http://wiring.org.co/reference/ Wiring] e C++. | |||
Tanto o hardware como o ambiente de programação do Arduino são [https://pt.wikipedia.org/wiki/Hardware_livre livres], ou seja, qualquer pessoa pode modificá-los e reproduzi-los. | |||
O Arduino também é conhecido como [https://computacaofisicabr.wordpress.com/o-que-e-computacao-fisica/ plataforma de computação física]. | |||
'''PLATAFORMAS DE COMPUTAÇÃO FÍSICA:''' são sistemas digitais ligados a | |||
sensores e atuadores, que permitem construir sistemas que percebam a realidade e respondem com ações físicas. | |||
O Arduíno é baseado em uma placa microcontrolada, com acessos de Entrada/Saída (I/O), que permite a criação de sistemas embarcados para aplicações industriais, comerciais, amadoras, profissionais, dos mais variados tipos. | |||
Existem inúmeros modelos de Arduínos, como veremos na sequência, mas existem alguns mais populares, como o antigo Duemilanove (2009, em italiano) e o Uno, muito utilizado atualmente. | |||
[[imagem: due2.jpg|center]] | |||
A principal diferença entre um Arduino e um computador convencional é que, além ter menor porte (tanto | A principal diferença entre um Arduino e um computador convencional é que, além ter menor porte (tanto | ||
| Linha 43: | Linha 63: | ||
# [http://www.arduino.cc/| ''Site'' oficial Projeto Arduino] | # [http://www.arduino.cc/| ''Site'' oficial Projeto Arduino] | ||
# [http://www.CursoDeArduino.com.br/apostila| Baixar apostila de Álvaro Justen] | # [http://www.CursoDeArduino.com.br/apostila| Baixar apostila de Álvaro Justen] | ||
# [http://http:// | # [http://oficinaderobotica.ufsc.br/files/2013/04/Programação-em-Arduino-Módulo-Básico.pdf Curso de programação básica para Arduíno] | ||
---- | |||
==Modelos de Arduíno== | |||
*Arduino UNO | |||
*Arduino Leonardo | |||
*Arduino Due | |||
*Arduino Esplora | |||
*Arduino Mega | |||
*Arduino Mega ADK | |||
*Arduino Ethernet | |||
*Arduino Mini | |||
*Arduino LilyPad | |||
*Arduino Micro | |||
*Arduino Nano | |||
*Arduino ProMini | |||
*Arduino Pro | |||
*Arduino Fio | |||
[[imagem: modelos2.jpg|center]] | |||
===Quadro Comparativo=== | |||
(arduino.org) | |||
[[imagem: quadro.jpg|center]] | |||
===Arduino UNO:=== | |||
Talvez o modelo mais popular atualmente seja o Uno: | |||
[[imagem: uno2.jpg|center]] | |||
[[imagem: uno2-3.jpg|center]] | |||
*Microcontrolador: '''ATmega328 ''' | |||
*Tensão de operação: '''5V ''' | |||
*Tensão recomendada (entrada): '''7-12V ''' | |||
*Limite da tensão de entrada: '''6-20V ''' | |||
*Pinos digitais: '''14''' (seis pinos com saída PWM) | |||
*Entrada analógica: '''6 pinos''' | |||
*Corrente contínua por pino de entrada e saída: '''40 mA''' | |||
*Corrente para o pino de 3.3 V: '''50 mA''' | |||
*Quantidade de memória FLASH: '''32 KB''' (ATmega328) onde 0.5 KB usado para o bootloader | |||
*Quantidade de memória SRAM: '''2 KB''' (ATmega328) | |||
*Quantidade de memória EEPROM: '''1 KB''' (ATmega328) | |||
*Velocidade de clock: '''16 MHz''' | |||
====Alimentação ==== | |||
* O Arduino UNO pode ser alimentado pela porta USB ou por uma fonte externa DC. | |||
*A recomendação é que a fonte externa seja de 7 V a 12 V e pode ser ligada diretamente no conector de fonte ou nos pinos Vin e Gnd. | |||
==Instalação do software== | |||
Para criar um projeto com o Arduino, basta comprar uma placa Arduino (utilizaremos o Arduino Uno, como exemplo) (que custa em torno de US$30 no exterior e por volta de R$100 no Brasil), fazer download da interface integrada de desenvolvimento (IDE) e ligar a placa à porta USB do PC. | |||
Como qualquer computador/microcontrolador, o Arduino precisa de um software para executar comandos. Esse software será desenvolvido na Arduino IDE em nosso PC, utilizando a linguagem C/C++. | |||
Após escrever o código, o compilaremos e então faremos o envio da versão compilada para a memória ‘’flash’’ do Arduino, através da porta USB. | |||
A partir do momento que o software é gravado no Arduino não precisamos mais do PC: o Arduino conseguirá executar o software independentemente, modo ‘’standalone’’, desde que seja ligado a uma fonte de energia. | |||
Antes de iniciar nosso projeto precisamos então instalar a IDE. | |||
O ambiente de desenvolvimento do Arduino (IDE) é gratuito e pode ser baixado no seguinte endereço: [[http://www.arduino.org/software#ide Arduino.org/software#ide]] | |||
Vamos lá: | |||
* Ubuntu GNU/Linux 10.10: Basta executar em um terminal: | |||
: sudo aptitude install arduino | |||
ou procurar pelo pacote \arduino no Synaptic (menu Sistema!Administração!Gerenciador de pacotes Synaptic). | |||
* Ubuntu GNU/Linux (anterior a 10.10): Consulte a página de instalação do Arduino em Ubuntu. | |||
* Outras distribuições GNU/Linux: Consulte a página de instalação em outras distribuições GNU/Linux. | |||
* Microsoft Windows: Basta baixar o arquivo de instalação e clicar duas vezes no mesmo. Consulte a página de instalação para as variadas versões do Microsoft Windows. | |||
* Apple Mac OS X: Consulte a página de instalação para o Mac OS X. | |||
Após a instalação, abra a IDE. A seguinte tela será mostrada: | |||
[[imagem: IDEarduino.jpg|center]] | |||
As seguintes configurações são necessárias: | |||
[[imagem: IDEinicio.jpg|center]] | |||
Chamamos um código feito para Arduino de sketch e o salvamos em um arquivo com a extensão .pde. | |||
Com nosso sketch pronto, bastará conectar o Arduino na porta USB e clicar no botão ''upload'' (segundo, da direita para a esquerda { destacado na figura acima). | |||
Após o processo, será vista a mensagem '''Done uploading''' na IDE e então o sketch estará rodando no Arduino, ou seja, o LED acenderá e apagará, de 1 em 1 segundo. Vamos agora à explicação do processo: | |||
==IDE Arduino== | |||
[[imagem: arduino.jpg|center]] | |||
Utiliza uma biblioteca de funções que simplifica a sua programação, por meio de uma sintaxe similar a das linguagens C e C++ ([http://wiring.org.co/reference/ ''Wiring'']). | |||
As principais funcionalidades do IDE do Arduino são: | |||
*Escrever o código do programa | |||
*Salvar o código do programa | |||
*Compilar um programa | |||
*Transportar o código compilado para a placa do Arduino (menu '''Upload''') | |||
*Permitir comunicação serial com o PC | |||
Mais detalhes sobre a IDE: [[IDEArduino IDE Arduino Menus]] | |||
===Funções=== | |||
As duas principais funções de um código Arduíno, isto é, de um programa desenvolvido para o Arduino são: | |||
*''setup()'': onde devem ser definidas algumas configurações iniciais do programa. Executa uma única vez, no início. | |||
*''loop()'': função principal do programa. Fica executando indefinidamente. | |||
Todo programa para o Arduino deve ter estas duas funções! | |||
[[imagem: funcs1.jpg|center]] | |||
====Exemplo 1: acionando o led da placa (pino digital 13)==== | |||
Começaremos com o exemplo clássico '''Blink''', que já vem como exemplo, no aplicativo. | |||
Para encontrar o exemplo clique em '''File ! Examples ! Digital ! Blink'''. | |||
O programa tem como objetivo acender e apagar o LED de um em um segundo. Para compilar | |||
este exemplo não é necessário de nenhuma outra infraestrutura, ou ''hardware'', que não o próprio Arduino. | |||
Primeiramente, vamos criar uma variável chamada '''ledPin''' para endereçar o pino de saída, onde o LED da placa já está conectado (variável do tipo inteiro): | |||
int ledPin = 13; | |||
Assim quando nos referirmos à variável ledPin, estaremos nos referindo ao pino 13. | |||
Este tipo de instrução não é obrigatória, mas é uma das boas práticas de programação e organização de código! | |||
O seguinte passo é classificar o ledPin como pino de '''SAÍDA''', porque os pinos são bidirecionais. | |||
Isto é feito da seguinte maneira: | |||
void setup() { | |||
pinMode(ledPin, OUTPUT); | |||
} | |||
A função ''pinMode()'' tem como primeiro parâmetro o número do pino e como segundo parâmetro, se | |||
ele é pino de entrada ou saída. | |||
Agora começaremos a escrever o processamento. | |||
O programa rodará em um ''loop eterno'', pois não deverá haver interrupções (ocorrências ou interferências que mudem o estado). | |||
Dentro do loop terá uma função que fará o LED ficar aceso por 1 segundo e depois apagado, por mais um segundo, e assim, sucessivamente. | |||
Escreva da seguinte maneira: | |||
void loop() { | |||
digitalWrite(ledPin, HIGH); | |||
delay(1000); | |||
digitalWrite(ledPin, LOW); | |||
delay(1000); | |||
} | |||
A função ''delay(x)'' pára a execução do código durante ''x'' milissegundos (ms). Por isto temos que utilizar o argumento 1000, para setar os atrasos em 1 segundo (=1000 ms). | |||
O código completo poderia ser: | |||
[[imagem: funcs2.jpg|center]] | |||
A função ''digitalWrite()'' '''escreve''' uma informação digital (nível lógico), ou seja, 0 (LOW) ou 1 (HIGH) em uma das saídas digitais. | |||
Seu primeiro parâmetro é o pino de saída, que no caso é o '''ledPin''' (pino 13). | |||
O segundo parâmetro é o estado a ser atribuído ao pino, HIGH ou LOW. | |||
Quando uma porta digital está em estado baixo (LOW), ela estará em 0V; já quando está em estado alto (HIGH), estará com 5 V. | |||
Antes de fazer o ''upload'' do programa (carregar o código pra memória FLASH do Arduíno), primeiro deve-se escolher a porta USB em que o Arduino se encontra (conectado ao PC). | |||
Para isso vá em '''Tools ! Serial Port ! porta''', para setar onde porta é o nome da porta onde estão ligados | |||
o Arduino (/dev/ttyUSB*, no caso de GNU/Linux, COM* em Windows). | |||
Para saber em qual porta o Arduino se encontra, faça por tentativa e erro, logo escolha um e tente rodar, caso não | |||
rode, é o outro. | |||
Outro passo que deve-se fazer é escolher o modelo da placa, para isso vá em: '''Tools ! Board''' e o modelo da sua placa. | |||
Agora sim para fazer o upload, clique em ''Upload'', como mostra a figura abaixo: | |||
[[imagem: upload.jpg|center]] | |||
Deve-se ressaltar que a IDE Arduino inclui automaticamente todas as bibliotecas que utilizamos. | |||
Se você está acostumado com C/C++, note que não precisamos digitar as diretivas ''include'' para arquivos como o | |||
''stdlib.h'', por exemplo. | |||
Tudo é feito de forma automática para facilitar o desenvolvimento do projeto! | |||
Como o Arduino já vem com um LED internamente conectado á porta 13, não precisaremos de circuitos | |||
externos para que esse projeto funcione, ou seja, bastará fazer ''upload'' daquele código e já teremos o resultado | |||
esperado: | |||
[[imagem: blink.jpg|center]] | |||
====Exercícios:==== | |||
#Altere o código para que o led da placa fique 2 segundos apagado e 3 segundos aceso. | |||
#Altere o código para que o led da placa fique 1 segundo aceso, 2 segundos apagado, mais meio segundo aceso e 300 ms apagado. | |||
#Porque a função ''delay()'' é necessária? | |||
#Porque foi necessário utilizar-se o pino digital 13? | |||
===Outras funções=== | |||
====Digital I/O==== | |||
pinMode() | |||
digitalWrite() | |||
digitalRead() | |||
====Analógico I/O==== | |||
analogReference() | |||
analogRead() | |||
analogWrite() - PWM | |||
====Avançado I/O==== | |||
tone() | |||
noTone() | |||
shiftOut() | |||
pulseIn() | |||
====Tempo==== | |||
millis() | |||
micros() | |||
delay() | |||
delayMicroseconds() | |||
====Matemática==== | |||
min() | |||
max() | |||
abs() | |||
constrain() | |||
map() | |||
pow() ***só do C/C++ sqrt() ***só do C/C++ | |||
====Trigonométrica==== | |||
sin() ***só do C/C++ | |||
cos() ***só do C/C++ | |||
tan() ***só do C/C++ | |||
====Números aleatórios==== | |||
randomSeed() | |||
random() | |||
====bits e Bytes==== | |||
lowByte() | |||
highByte() | |||
bitRead() | |||
bitWrite() | |||
bitSet() | |||
bitClear() | |||
bit() | |||
====Interrupções externas==== | |||
attachInterrupt() | |||
detachInterrupt() | |||
====Interrupções==== | |||
interrupts() | |||
noInterrupts() | |||
====Comunicação Serial==== | |||
Serial. | |||
begin() | |||
read() | |||
write() | |||
print() | |||
println() e | |||
available() | |||
=Acionando display LCD com arduino= | |||
A maioria das aplicações demanda o uso de um display LCD comum, que nada mais é do que uma matriz 16x2 de leds, para visualização dos resultados. | |||
[[image: DispLCD1.png|center]] | |||
Nesta aula, veremos como escrever neste, usando o arduino. | |||
[https://www.filipeflop.com/blog/controlando-um-lcd-16x2-com-arduino/ Display LCD 16x2 com arduino] | |||
==Displays LCD Keypad Shield== | |||
O curso técnico de Eletroeletrônica do IFSC, Campus Itajaí dispõe de displays LCD 16x2 '''Keypad Shield''', os quais prescindem de todo cabeamento e protoboards externos. | |||
[[image: DispLCDshield.png|center]] | |||
O funcionamento deste pode ser compreendido nos links: | |||
[https://www.arduinoecia.com.br/2013/08/arduino-shield-lcd-16x2-com-keypad.html Funcionamento do Keypad Shield] | |||
Maiores detalhes acerca da biblioteca [http://blog.baudaeletronica.com.br/conhecendo-biblioteca-liquidcrystal/ '''''LiquidCrystal.h'''''] | |||
===Escrever texto deslizante ("scrolling text") no display:=== | |||
#include <LiquidCrystal.h> | |||
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); | |||
void setup() | |||
{ lcd.begin(16, 2); | |||
lcd.setCursor(0,0); | |||
lcd.print("Fernanda - MIC2"); | |||
delay(2000); | |||
} | |||
void loop() | |||
{ int i; | |||
for(i=0;i<16;i++) | |||
{ lcd.setCursor(i,1); | |||
lcd.print("Texto deslizante"); | |||
delay(300); | |||
lcd.clear(); | |||
} | |||
===Texto deslizante usando a função ''scrollDisplayLeft'':=== | |||
#include <LiquidCrystal.h> | |||
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); | |||
void setup() | |||
{ lcd.begin(16, 2); | |||
lcd.setCursor(16,0); | |||
lcd.print("Fernanda - MIC2"); | |||
} | |||
void loop() | |||
{ | |||
lcd.scrollDisplayLeft(); | |||
delay(500); | |||
} | |||
[[media: lcdVIDEO.mov video]] | |||
===Identificar tecla pressionada e mostrar no display=== | |||
#include <LiquidCrystal.h> | |||
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); | |||
void setup() | |||
{ | |||
lcd.begin(16, 2); | |||
lcd.setCursor(0,0); | |||
lcd.print("Fernanda - MIC2"); | |||
lcd.setCursor(0,1); | |||
lcd.print("Tecla:"); | |||
} | |||
void loop() | |||
{ | |||
int botao; | |||
botao = analogRead (0); //Leitura do valor da porta analógica A0 | |||
lcd.setCursor(10,1); | |||
if (botao < 99) { | |||
lcd.print ("Direita "); | |||
} | |||
else if (botao < 200) { | |||
lcd.print ("Cima "); | |||
} | |||
else if (botao < 400){ | |||
lcd.print ("Baixo "); | |||
} | |||
else if (botao < 600){ | |||
lcd.print ("Esquerda"); | |||
} | |||
else if (botao < 800){ | |||
lcd.print ("Select "); | |||
} | |||
} | |||
[http://blog.usinainfo.com.br/shield-lcd-16x2-lcd-keypad-shield-com-botoes-para-arduino/ Programa-exemplo de uso do Keypad Shield] | |||
------------------ | |||
{| border="1" cellpadding="5" cellspacing="0" | |||
! style="background: #cdc5bf;" | [[MCO1870321| << Página do curso ]] | |||
! style="background: #cdc5bf;" | AULA 1 - Introdução aos Microcontroladores | |||
! style="background: #cdc5bf;" | [[AULA 2 - Microcontroladores - Técnico| Arquitetura do Arduíno >> ]] | |||
|} | |||
Edição atual tal como às 09h37min de 8 de agosto de 2018
Introdução aos Microcontroladores
Apresentação sobre Microcontroladores
Apostila sobre Microcontroladores
A plataforma Arduíno
(Extraído da apostila Curso de Arduíno, de Álvaro Justen e do curso Programação Básica em Arduíno, UFSC)
Arduino 1 é um projeto que engloba software e hardware e tem como objetivo fornecer uma plataforma fácil para prototipação de projetos interativos, utilizando um microcontrolador.
O projeto do Arduino teve início em 2005 na cidade de Ivrea, Itália.
O Arduino é composto por uma placa com microcontrolador Atmel AVR e um ambiente de programação baseado em Wiring e C++.
Tanto o hardware como o ambiente de programação do Arduino são livres, ou seja, qualquer pessoa pode modificá-los e reproduzi-los.
O Arduino também é conhecido como plataforma de computação física.
PLATAFORMAS DE COMPUTAÇÃO FÍSICA: são sistemas digitais ligados a sensores e atuadores, que permitem construir sistemas que percebam a realidade e respondem com ações físicas. O Arduíno é baseado em uma placa microcontrolada, com acessos de Entrada/Saída (I/O), que permite a criação de sistemas embarcados para aplicações industriais, comerciais, amadoras, profissionais, dos mais variados tipos.
Existem inúmeros modelos de Arduínos, como veremos na sequência, mas existem alguns mais populares, como o antigo Duemilanove (2009, em italiano) e o Uno, muito utilizado atualmente.
A principal diferença entre um Arduino e um computador convencional é que, além ter menor porte (tanto
no tamanho quanto no poder de processamento), o Arduino utiliza dispositivos diferentes para entrada e saída
em geral.
Por exemplo: em um PC utilizamos teclado e mouse como dispositivos de entrada e monitores e impressoras como dispositivos de saída; já em projetos com o Arduino os dispositivos de entrada e saída são circuitos elétricos/eletrônicos.
Como a interface do Arduino com outros dispositivos está mais perto do meio físico que a de um PC,
podemos ler dados de sensores (temperatura, luz, pressão etc.) e controlar outros circuitos (lâmpadas, motores,
eletrodomésticos etc.), dentre outras coisas que não conseguiríamos diretamente com um PC.
A grande diferença com relação ao uso desses dispositivos, no caso do Arduino, é que, na maior parte das vezes, nós mesmos construímos os circuitos que são utilizados, ou seja, não estamos limitados apenas a produtos existentes no mercado: o limite é dado por nosso conhecimento e criatividade! O melhor de tudo nesse projeto é que seu software, hardware e documentação so abertos. O software é livre (GNU GPL2), o hardware é totalmente aberto, especificado (basta entrar no site e baixar os esquemas) e a documentação está disponível em Creative Commons3, os usuários podem colaborar (seja escrevendo documentação, seja traduzindo) através da wiki!
Referências:
- Site oficial Projeto Arduino
- Baixar apostila de Álvaro Justen
- Curso de programação básica para Arduíno
Modelos de Arduíno
- Arduino UNO
- Arduino Leonardo
- Arduino Due
- Arduino Esplora
- Arduino Mega
- Arduino Mega ADK
- Arduino Ethernet
- Arduino Mini
- Arduino LilyPad
- Arduino Micro
- Arduino Nano
- Arduino ProMini
- Arduino Pro
- Arduino Fio
Quadro Comparativo
(arduino.org)
Arduino UNO:
Talvez o modelo mais popular atualmente seja o Uno:
- Microcontrolador: ATmega328
- Tensão de operação: 5V
- Tensão recomendada (entrada): 7-12V
- Limite da tensão de entrada: 6-20V
- Pinos digitais: 14 (seis pinos com saída PWM)
- Entrada analógica: 6 pinos
- Corrente contínua por pino de entrada e saída: 40 mA
- Corrente para o pino de 3.3 V: 50 mA
- Quantidade de memória FLASH: 32 KB (ATmega328) onde 0.5 KB usado para o bootloader
- Quantidade de memória SRAM: 2 KB (ATmega328)
- Quantidade de memória EEPROM: 1 KB (ATmega328)
- Velocidade de clock: 16 MHz
Alimentação
- O Arduino UNO pode ser alimentado pela porta USB ou por uma fonte externa DC.
- A recomendação é que a fonte externa seja de 7 V a 12 V e pode ser ligada diretamente no conector de fonte ou nos pinos Vin e Gnd.
Instalação do software
Para criar um projeto com o Arduino, basta comprar uma placa Arduino (utilizaremos o Arduino Uno, como exemplo) (que custa em torno de US$30 no exterior e por volta de R$100 no Brasil), fazer download da interface integrada de desenvolvimento (IDE) e ligar a placa à porta USB do PC.
Como qualquer computador/microcontrolador, o Arduino precisa de um software para executar comandos. Esse software será desenvolvido na Arduino IDE em nosso PC, utilizando a linguagem C/C++.
Após escrever o código, o compilaremos e então faremos o envio da versão compilada para a memória ‘’flash’’ do Arduino, através da porta USB.
A partir do momento que o software é gravado no Arduino não precisamos mais do PC: o Arduino conseguirá executar o software independentemente, modo ‘’standalone’’, desde que seja ligado a uma fonte de energia. Antes de iniciar nosso projeto precisamos então instalar a IDE.
O ambiente de desenvolvimento do Arduino (IDE) é gratuito e pode ser baixado no seguinte endereço: [Arduino.org/software#ide]
Vamos lá:
- Ubuntu GNU/Linux 10.10: Basta executar em um terminal:
- sudo aptitude install arduino
ou procurar pelo pacote \arduino no Synaptic (menu Sistema!Administração!Gerenciador de pacotes Synaptic).
- Ubuntu GNU/Linux (anterior a 10.10): Consulte a página de instalação do Arduino em Ubuntu.
- Outras distribuições GNU/Linux: Consulte a página de instalação em outras distribuições GNU/Linux.
- Microsoft Windows: Basta baixar o arquivo de instalação e clicar duas vezes no mesmo. Consulte a página de instalação para as variadas versões do Microsoft Windows.
- Apple Mac OS X: Consulte a página de instalação para o Mac OS X.
Após a instalação, abra a IDE. A seguinte tela será mostrada:
As seguintes configurações são necessárias:
Chamamos um código feito para Arduino de sketch e o salvamos em um arquivo com a extensão .pde.
Com nosso sketch pronto, bastará conectar o Arduino na porta USB e clicar no botão upload (segundo, da direita para a esquerda { destacado na figura acima).
Após o processo, será vista a mensagem Done uploading na IDE e então o sketch estará rodando no Arduino, ou seja, o LED acenderá e apagará, de 1 em 1 segundo. Vamos agora à explicação do processo:
IDE Arduino
Utiliza uma biblioteca de funções que simplifica a sua programação, por meio de uma sintaxe similar a das linguagens C e C++ (Wiring).
As principais funcionalidades do IDE do Arduino são:
- Escrever o código do programa
- Salvar o código do programa
- Compilar um programa
- Transportar o código compilado para a placa do Arduino (menu Upload)
- Permitir comunicação serial com o PC
Mais detalhes sobre a IDE: IDEArduino IDE Arduino Menus
Funções
As duas principais funções de um código Arduíno, isto é, de um programa desenvolvido para o Arduino são:
- setup(): onde devem ser definidas algumas configurações iniciais do programa. Executa uma única vez, no início.
- loop(): função principal do programa. Fica executando indefinidamente.
Todo programa para o Arduino deve ter estas duas funções!
Exemplo 1: acionando o led da placa (pino digital 13)
Começaremos com o exemplo clássico Blink, que já vem como exemplo, no aplicativo.
Para encontrar o exemplo clique em File ! Examples ! Digital ! Blink.
O programa tem como objetivo acender e apagar o LED de um em um segundo. Para compilar este exemplo não é necessário de nenhuma outra infraestrutura, ou hardware, que não o próprio Arduino.
Primeiramente, vamos criar uma variável chamada ledPin para endereçar o pino de saída, onde o LED da placa já está conectado (variável do tipo inteiro):
int ledPin = 13;
Assim quando nos referirmos à variável ledPin, estaremos nos referindo ao pino 13.
Este tipo de instrução não é obrigatória, mas é uma das boas práticas de programação e organização de código!
O seguinte passo é classificar o ledPin como pino de SAÍDA, porque os pinos são bidirecionais.
Isto é feito da seguinte maneira:
void setup() {
pinMode(ledPin, OUTPUT);
}
A função pinMode() tem como primeiro parâmetro o número do pino e como segundo parâmetro, se
ele é pino de entrada ou saída.
Agora começaremos a escrever o processamento.
O programa rodará em um loop eterno, pois não deverá haver interrupções (ocorrências ou interferências que mudem o estado).
Dentro do loop terá uma função que fará o LED ficar aceso por 1 segundo e depois apagado, por mais um segundo, e assim, sucessivamente.
Escreva da seguinte maneira:
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
A função delay(x) pára a execução do código durante x milissegundos (ms). Por isto temos que utilizar o argumento 1000, para setar os atrasos em 1 segundo (=1000 ms).
O código completo poderia ser:
A função digitalWrite() escreve uma informação digital (nível lógico), ou seja, 0 (LOW) ou 1 (HIGH) em uma das saídas digitais. Seu primeiro parâmetro é o pino de saída, que no caso é o ledPin (pino 13). O segundo parâmetro é o estado a ser atribuído ao pino, HIGH ou LOW.
Quando uma porta digital está em estado baixo (LOW), ela estará em 0V; já quando está em estado alto (HIGH), estará com 5 V.
Antes de fazer o upload do programa (carregar o código pra memória FLASH do Arduíno), primeiro deve-se escolher a porta USB em que o Arduino se encontra (conectado ao PC).
Para isso vá em Tools ! Serial Port ! porta, para setar onde porta é o nome da porta onde estão ligados o Arduino (/dev/ttyUSB*, no caso de GNU/Linux, COM* em Windows).
Para saber em qual porta o Arduino se encontra, faça por tentativa e erro, logo escolha um e tente rodar, caso não rode, é o outro.
Outro passo que deve-se fazer é escolher o modelo da placa, para isso vá em: Tools ! Board e o modelo da sua placa.
Agora sim para fazer o upload, clique em Upload, como mostra a figura abaixo:
Deve-se ressaltar que a IDE Arduino inclui automaticamente todas as bibliotecas que utilizamos.
Se você está acostumado com C/C++, note que não precisamos digitar as diretivas include para arquivos como o stdlib.h, por exemplo.
Tudo é feito de forma automática para facilitar o desenvolvimento do projeto!
Como o Arduino já vem com um LED internamente conectado á porta 13, não precisaremos de circuitos
externos para que esse projeto funcione, ou seja, bastará fazer upload daquele código e já teremos o resultado
esperado:
Exercícios:
- Altere o código para que o led da placa fique 2 segundos apagado e 3 segundos aceso.
- Altere o código para que o led da placa fique 1 segundo aceso, 2 segundos apagado, mais meio segundo aceso e 300 ms apagado.
- Porque a função delay() é necessária?
- Porque foi necessário utilizar-se o pino digital 13?
Outras funções
Digital I/O
pinMode() digitalWrite() digitalRead()
Analógico I/O
analogReference() analogRead() analogWrite() - PWM
Avançado I/O
tone() noTone() shiftOut() pulseIn()
Tempo
millis() micros() delay() delayMicroseconds()
Matemática
min() max() abs() constrain() map() pow() ***só do C/C++ sqrt() ***só do C/C++
Trigonométrica
sin() ***só do C/C++ cos() ***só do C/C++ tan() ***só do C/C++
Números aleatórios
randomSeed() random()
bits e Bytes
lowByte() highByte() bitRead() bitWrite() bitSet() bitClear() bit()
Interrupções externas
attachInterrupt() detachInterrupt()
Interrupções
interrupts() noInterrupts()
Comunicação Serial
Serial.
begin() read() write() print() println() e available()
Acionando display LCD com arduino
A maioria das aplicações demanda o uso de um display LCD comum, que nada mais é do que uma matriz 16x2 de leds, para visualização dos resultados.
Nesta aula, veremos como escrever neste, usando o arduino.
Displays LCD Keypad Shield
O curso técnico de Eletroeletrônica do IFSC, Campus Itajaí dispõe de displays LCD 16x2 Keypad Shield, os quais prescindem de todo cabeamento e protoboards externos.
O funcionamento deste pode ser compreendido nos links:
Funcionamento do Keypad Shield
Maiores detalhes acerca da biblioteca LiquidCrystal.h
Escrever texto deslizante ("scrolling text") no display:
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup()
{ lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Fernanda - MIC2");
delay(2000);
}
void loop()
{ int i;
for(i=0;i<16;i++)
{ lcd.setCursor(i,1);
lcd.print("Texto deslizante");
delay(300);
lcd.clear();
}
Texto deslizante usando a função scrollDisplayLeft:
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup()
{ lcd.begin(16, 2);
lcd.setCursor(16,0);
lcd.print("Fernanda - MIC2");
}
void loop()
{
lcd.scrollDisplayLeft();
delay(500);
}
Identificar tecla pressionada e mostrar no display
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Fernanda - MIC2");
lcd.setCursor(0,1);
lcd.print("Tecla:");
}
void loop()
{
int botao;
botao = analogRead (0); //Leitura do valor da porta analógica A0
lcd.setCursor(10,1);
if (botao < 99) {
lcd.print ("Direita ");
}
else if (botao < 200) {
lcd.print ("Cima ");
}
else if (botao < 400){
lcd.print ("Baixo ");
}
else if (botao < 600){
lcd.print ("Esquerda");
}
else if (botao < 800){
lcd.print ("Select ");
}
}
Programa-exemplo de uso do Keypad Shield
| << Página do curso | AULA 1 - Introdução aos Microcontroladores | Arquitetura do Arduíno >> |
|---|













