Introdução à plataforma
Arduino
Introdução à plataforma Arduino
{
"name": "Rogerio Alencar Filho",
"hobby": "Analista de Sistemas (web!!!!)",
"social": {
"facebook": "https://facebook.com/rogerioalencar",
"twitter": "https://twitter.com/rogerin",
"github": "https://github.com/rogerin",
"youtube": "https://youtube.com/user/rogerim",
"slideshare": "https://slideshare.net/RogerioAlencarFilho"
}
}
O que é Arduino
O que é Arduino
Arduino, é uma plataforma de prototipagem eletrônica de hardware livre,
projetada com um microcontrolador Atmel AVR, com suporte de
entrada/saída, uma linguagem de programação padrão. O objetivo do
projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis
e fáceis de se usar por artistas e amadores. Principalmente para aqueles
que não teriam alcance aos controladores mais sofisticados e de
ferramentas mais complicadas.
Inicio desse BUMM!!!
Arduino`s
Serial Arduino Serial DB9 para programação - ATmega8
Arduino Extreme USB para programação - ATmega8
Arduino Mini Versão em miniatura do Arduino utilizando montagem superficial - ATmega168
Arduino Nano Versão menor que o Arduino Mini, energizado por USB e conectado por montagem superficial - ATmega168/328
LilyPad Arduino Projeto minimalista para aplicações portáteis, utilizando montagem superficial - ATmega168
Arduino NG USB para programação - ATmega8
Arduino NG plus USB para programação - ATmega168
Arduino BT interface bluetooth para comunicação - ATmega168
Arduino Diecimila Interface USB -Atmega168 em um pacote DIL28(foto)
ArduinoDuemilanove Duemilanove significa "2009" em italiano. É energizado via USB/DC, com alternação automática - Atmega168
(Atmega328 para a versão mais nova)
ArduinoMega Montagem superficial - ATmega1280 para E/S adicionais e memória
Arduino Uno Utiliza Atmega8U2 para driver conversor Serial-USB, ao invés do FTDI."Uno" significa "Um" em italiano. Esta versão é
considerada a versão 1.0 do projeto, sendo que as placas que sucederem a esta serão referenciadas. - ATmega328
Arduino`s
Arduino UNO
Essa é a última versão da placa USB. Usa um conector USB padrão e contem
tudo o que você precisa para programar e usar a placa. É semelhante ao
modelo Duemilanove.
Arduino UNO
Arduino LilyPad
Desenvolvido para aplicações portáteis, dá para "costurar" essa placa em um
tecido!Dá para fazer coisas curiosas! (camisetas com equalizador? Ah tá...)
Arduino LilyPad
Arduino LilyPad
Arduino Uno SMD
Versão SMD do UNO, utiliza um microcontrolador de montagem de superfície,
ATmega328.
Arduino Fio
Projetado para aplicações sem fio. Possui um soquete para Xbee, um conector
para bateria LiPo.
Arduino Mega2560
Versão do Mega lançado com o Uno, esta versão apresenta o Atmega2560,
que tem o dobro da memória, e usa o 8U2 ATmega para a comunicação serial-
USB.
Arduino PRO
Esta placa é projetada para usuários avançados. É facilmente alimentado por
uma bateria, mas requer componentes adicionais e montagem técnica.
BT Arduino
A BT Arduino contém um módulo bluetooth que permite a comunicação sem
fio. É compatível com todos os Shields Arduino.
Arduino Mini PRO
Igual a versão PRO, porem menor. É projetado para usuários avançados que
exigem baixos custos, pequenos espaços, mas ainda assim, tem que estar
dispostos para fazer algum trabalho extra de montagem.
Arduino Mini
Parece a mesma da anterior, mas não é! Este é o menor da placa Arduino. Ela
funciona bem em uma protoboard ou para aplicações onde o espaço é
pequeno (pequeno mesmo!).
Faça o seu!!!
Shield`s
Estrutura
// antes do setup você pode incluir bibliotecas
void setup() {
// toda configuração vem aqui
}
void loop(){
/// Codigo em loop infinito
}
Funções
pinMode();
digitalWrite();
digitalRead();
analogRead()
analogWrite(); - PWM
millis();
micros();
delay();
delayMicroseconds();
Controle
switch case
while
do... while
break
continue
return
goto
Syntax
;
{} (chave)
// (comentario simples)
/* */ (comentario multilinha)
#define
#include
Operadores
= (assignment operator)
+ (addition)
- (subtraction)
* (multiplication)
/ (division)
% (modulo)
Comparações
== (equal to)
!= (not equal to)
< (less than)
> (greater than)
<= (less than or equal to)
>= (greater than or equal to)
Boolean
&& (and)
|| (or)
! (not)
http://arduino.cc/en/Reference/HomePage
e muito mais...
Hello World da eletrônica digital.
digitalWrite();
int ledPin = 13; // LED no pin 13
void setup() {
pinMode(ledPin, OUTPUT); // setar pino digital como SAIDA, para
acionamentos
}
void loop() {
digitalWrite(ledPin, HIGH); // LED on
delay(1000); // aguarda 1 segundo
digitalWrite(ledPin, LOW); // LED off
delay(1000); // aguarda 1 segundo
}
digitalRead();
int ledPin = 13; // LED digital pin 13
int inPin = 7; // pushbutton digital pin 7
int val = 0; // variavel guarda valor do digitalRead()
void setup(){
pinMode(ledPin, OUTPUT); // seta digital pin 13 como SAIDA
pinMode(inPin, INPUT); // seta digital pin 7 como ENTRADA
}
void loop(){
val = digitalRead(inPin); // ler pino de entrada
digitalWrite(ledPin, val); // seta LED com o valor da leitura do botao
}
analogRead();
int analogPin = 3; // potenciomentro no analogico pin 3
int val = 0; // variavel guarda valor da leitura do analogico
void setup() {
Serial.begin(9600); // setup serial!!!!!!!!!!
}
void loop() {
val = analogRead(analogPin); // faz leitura do pino analogico
Serial.println(val); // debug valor !!!
}
analogRead() + Serial.println()
int analogPin = 3; // potenciomentro no analogico pin 3
int val = 0; // variavel guarda valor da leitura do analogico
void setup() {
Serial.begin(9600); // setup serial!!!!!!!!!!
}
void loop() {
val = analogRead(analogPin); // faz leitura do pino analogico
Serial.println(val); // debug valor !!!
Serial.println(val, DEC); // ASCII-encode decimal
Serial.println(val, HEX); // ASCII-encode hexadecimall
Serial.println(val, OCT); // ASCII-encode octadecimal
Serial.println(val, BIN); // ASCII-encode binario
dealy(10); // delay 10 miles segundos
}
Serial.println() Vs. Serial.print()
int ledPin = 13; // LED digital pin 13
int inPin = 7; // pushbutton digital pin 7
int val = 0; // variavel guarda valor do digitalRead()
void setup(){
Serial.begin(9600);
pinMode(ledPin, OUTPUT); // seta digital pin 13 como SAIDA
pinMode(inPin, INPUT); // seta digital pin 7 como ENTRADA
}
void loop(){
val = digitalRead(inPin); // ler pino de entrada
digitalWrite(ledPin, val); // seta LED com o valor da leitura do botao
if(val) {
Serial.prinln(“Botao pressionado..”);
} else {
Serial.print(“Botao nao pressionado”);
}
}
PWM
int ledPin = 9; // LED conectado no pin digital 9
int analogPin = 3; // potenciometro conectado no pin analogico 3
int val = 0; // variavel que recebe valor da leitura do potenciometro
void setup() {
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop() {
val = analogRead(analogPin); // read the input pin
analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to
255
}
Sensores
LDR - Sensor de Luz
Criando Funções
int ledPin = 13; // LED conectado no pin digital 9
void setup() {
pinMode(ledPin, OUTPUT); // seta pin como saida
}
void loop() {
mudaStatusLed(ledPin);
delay(1000);
}
void mudaStatusLed(int Pin) {
digitalWrite(Pin, !digitalRead(Pin));
}
Criando projeto real (uma roleta)
Projeto: Ele vai ter que sortear aleatoriamente qual led vai acender, igual a
sistema de roleta mesmo padrão. Ao ligar o Arduino ele vai iniciar o sorteio,
acendendo os leds em forma sequencial, ate o fim do sorteio e apenas o
sorteado ficara ligado.
Tentem um pouco depois programamos ao mesmo tempo.
Criando projeto real (uma roleta)
Dica 1:
int numeroAleatorio;
void setup(){
numeroAleatorio = random(100, 300);
// variavel numeroAleatorio recebe valor
aleatorio entre 100 e 300.
…..
……
Dica 2:
Codigo
int led[7] = {13,12,11,10,9,8,7};
int delayInicial = 50; //delay inicial
int ledAtual = 0;
int numeroAleatorio;
void setup(){
for(int i = 0;i <= 6;i++){
pinMode(led[i], OUTPUT);
}
numeroAleatorio= random(100, 300);
}
void loop(){
for(int i = 0;i <= 6;i++){
if (delayInicial <= delayInicial) {
ligaLed(i);
}
else {
digitalWrite(led[ledAtual], HIGH);
}
}
}
void ligaLed(int i){
digitalWrite(led[i], HIGH);
delay(delayInicial);
digitalWrite(led[i], LOW);
delayInicial+=2;
ledAtual = i;
}
Comunicação I2C - Inter-Integrated Circuit
Comunicação I2C - Inter-Integrated Circuit
Comunicação I2C - Inter-Integrated Circuit
Comunicação SPI - Serial Peripheral Interface
Comunicação SPI - Serial Peripheral Interface
Codigo
int led[7] = {13,12,11,10,9,8,7};
int delayInicial = 50; //delay inicial
int ledAtual = 0;
int numeroAleatorio;
void setup(){
for(int i = 0;i <= 6;i++){
pinMode(led[i], OUTPUT);
}
numeroAleatorio= random(100, 300);
}
void loop(){
for(int i = 0;i <= 6;i++){
if (delayInicial <= delayInicial) {
ligaLed(i);
}
else {
digitalWrite(led[ledAtual], HIGH);
}
}
}
void ligaLed(int i){
digitalWrite(led[i], HIGH);
delay(delayInicial);
digitalWrite(led[i], LOW);
delayInicial+=2;
ledAtual = i;
}
https://www.youtube.com/user/rogerim
Ethernet
Alguns projetos...
Obrigado!
{
"name": "Rogerio Alencar Filho",
"hobby": "Analista de Sistemas (web!!!!)",
"social": {
"facebook": "https://facebook.com/rogerioalencar",
"twitter": "https://twitter.com/rogerin",
"github": "https://github.com/rogerin",
"youtube": "https://youtube.com/user/rogerim",
"slideshare": "https://slideshare.net/RogerioAlencarFilho"
}
}

Introdução a plataforma arduino

  • 1.
  • 2.
    Introdução à plataformaArduino { "name": "Rogerio Alencar Filho", "hobby": "Analista de Sistemas (web!!!!)", "social": { "facebook": "https://facebook.com/rogerioalencar", "twitter": "https://twitter.com/rogerin", "github": "https://github.com/rogerin", "youtube": "https://youtube.com/user/rogerim", "slideshare": "https://slideshare.net/RogerioAlencarFilho" } }
  • 3.
    O que éArduino
  • 4.
    O que éArduino Arduino, é uma plataforma de prototipagem eletrônica de hardware livre, projetada com um microcontrolador Atmel AVR, com suporte de entrada/saída, uma linguagem de programação padrão. O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar por artistas e amadores. Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas.
  • 5.
  • 6.
  • 7.
    Serial Arduino SerialDB9 para programação - ATmega8 Arduino Extreme USB para programação - ATmega8 Arduino Mini Versão em miniatura do Arduino utilizando montagem superficial - ATmega168 Arduino Nano Versão menor que o Arduino Mini, energizado por USB e conectado por montagem superficial - ATmega168/328 LilyPad Arduino Projeto minimalista para aplicações portáteis, utilizando montagem superficial - ATmega168 Arduino NG USB para programação - ATmega8 Arduino NG plus USB para programação - ATmega168 Arduino BT interface bluetooth para comunicação - ATmega168 Arduino Diecimila Interface USB -Atmega168 em um pacote DIL28(foto) ArduinoDuemilanove Duemilanove significa "2009" em italiano. É energizado via USB/DC, com alternação automática - Atmega168 (Atmega328 para a versão mais nova) ArduinoMega Montagem superficial - ATmega1280 para E/S adicionais e memória Arduino Uno Utiliza Atmega8U2 para driver conversor Serial-USB, ao invés do FTDI."Uno" significa "Um" em italiano. Esta versão é considerada a versão 1.0 do projeto, sendo que as placas que sucederem a esta serão referenciadas. - ATmega328 Arduino`s
  • 8.
    Arduino UNO Essa éa última versão da placa USB. Usa um conector USB padrão e contem tudo o que você precisa para programar e usar a placa. É semelhante ao modelo Duemilanove.
  • 9.
  • 10.
    Arduino LilyPad Desenvolvido paraaplicações portáteis, dá para "costurar" essa placa em um tecido!Dá para fazer coisas curiosas! (camisetas com equalizador? Ah tá...)
  • 11.
  • 12.
  • 13.
    Arduino Uno SMD VersãoSMD do UNO, utiliza um microcontrolador de montagem de superfície, ATmega328.
  • 14.
    Arduino Fio Projetado paraaplicações sem fio. Possui um soquete para Xbee, um conector para bateria LiPo.
  • 15.
    Arduino Mega2560 Versão doMega lançado com o Uno, esta versão apresenta o Atmega2560, que tem o dobro da memória, e usa o 8U2 ATmega para a comunicação serial- USB.
  • 16.
    Arduino PRO Esta placaé projetada para usuários avançados. É facilmente alimentado por uma bateria, mas requer componentes adicionais e montagem técnica.
  • 17.
    BT Arduino A BTArduino contém um módulo bluetooth que permite a comunicação sem fio. É compatível com todos os Shields Arduino.
  • 18.
    Arduino Mini PRO Iguala versão PRO, porem menor. É projetado para usuários avançados que exigem baixos custos, pequenos espaços, mas ainda assim, tem que estar dispostos para fazer algum trabalho extra de montagem.
  • 19.
    Arduino Mini Parece amesma da anterior, mas não é! Este é o menor da placa Arduino. Ela funciona bem em uma protoboard ou para aplicações onde o espaço é pequeno (pequeno mesmo!).
  • 20.
  • 23.
  • 26.
    Estrutura // antes dosetup você pode incluir bibliotecas void setup() { // toda configuração vem aqui } void loop(){ /// Codigo em loop infinito }
  • 27.
  • 28.
    Controle switch case while do... while break continue return goto Syntax ; {}(chave) // (comentario simples) /* */ (comentario multilinha) #define #include Operadores = (assignment operator) + (addition) - (subtraction) * (multiplication) / (division) % (modulo) Comparações == (equal to) != (not equal to) < (less than) > (greater than) <= (less than or equal to) >= (greater than or equal to) Boolean && (and) || (or) ! (not) http://arduino.cc/en/Reference/HomePage e muito mais...
  • 29.
    Hello World daeletrônica digital. digitalWrite(); int ledPin = 13; // LED no pin 13 void setup() { pinMode(ledPin, OUTPUT); // setar pino digital como SAIDA, para acionamentos } void loop() { digitalWrite(ledPin, HIGH); // LED on delay(1000); // aguarda 1 segundo digitalWrite(ledPin, LOW); // LED off delay(1000); // aguarda 1 segundo }
  • 30.
    digitalRead(); int ledPin =13; // LED digital pin 13 int inPin = 7; // pushbutton digital pin 7 int val = 0; // variavel guarda valor do digitalRead() void setup(){ pinMode(ledPin, OUTPUT); // seta digital pin 13 como SAIDA pinMode(inPin, INPUT); // seta digital pin 7 como ENTRADA } void loop(){ val = digitalRead(inPin); // ler pino de entrada digitalWrite(ledPin, val); // seta LED com o valor da leitura do botao }
  • 31.
    analogRead(); int analogPin =3; // potenciomentro no analogico pin 3 int val = 0; // variavel guarda valor da leitura do analogico void setup() { Serial.begin(9600); // setup serial!!!!!!!!!! } void loop() { val = analogRead(analogPin); // faz leitura do pino analogico Serial.println(val); // debug valor !!! }
  • 32.
    analogRead() + Serial.println() intanalogPin = 3; // potenciomentro no analogico pin 3 int val = 0; // variavel guarda valor da leitura do analogico void setup() { Serial.begin(9600); // setup serial!!!!!!!!!! } void loop() { val = analogRead(analogPin); // faz leitura do pino analogico Serial.println(val); // debug valor !!! Serial.println(val, DEC); // ASCII-encode decimal Serial.println(val, HEX); // ASCII-encode hexadecimall Serial.println(val, OCT); // ASCII-encode octadecimal Serial.println(val, BIN); // ASCII-encode binario dealy(10); // delay 10 miles segundos }
  • 33.
    Serial.println() Vs. Serial.print() intledPin = 13; // LED digital pin 13 int inPin = 7; // pushbutton digital pin 7 int val = 0; // variavel guarda valor do digitalRead() void setup(){ Serial.begin(9600); pinMode(ledPin, OUTPUT); // seta digital pin 13 como SAIDA pinMode(inPin, INPUT); // seta digital pin 7 como ENTRADA } void loop(){ val = digitalRead(inPin); // ler pino de entrada digitalWrite(ledPin, val); // seta LED com o valor da leitura do botao if(val) { Serial.prinln(“Botao pressionado..”); } else { Serial.print(“Botao nao pressionado”); } }
  • 34.
    PWM int ledPin =9; // LED conectado no pin digital 9 int analogPin = 3; // potenciometro conectado no pin analogico 3 int val = 0; // variavel que recebe valor da leitura do potenciometro void setup() { pinMode(ledPin, OUTPUT); // sets the pin as output } void loop() { val = analogRead(analogPin); // read the input pin analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255 }
  • 35.
  • 36.
  • 37.
    Criando Funções int ledPin= 13; // LED conectado no pin digital 9 void setup() { pinMode(ledPin, OUTPUT); // seta pin como saida } void loop() { mudaStatusLed(ledPin); delay(1000); } void mudaStatusLed(int Pin) { digitalWrite(Pin, !digitalRead(Pin)); }
  • 38.
    Criando projeto real(uma roleta) Projeto: Ele vai ter que sortear aleatoriamente qual led vai acender, igual a sistema de roleta mesmo padrão. Ao ligar o Arduino ele vai iniciar o sorteio, acendendo os leds em forma sequencial, ate o fim do sorteio e apenas o sorteado ficara ligado. Tentem um pouco depois programamos ao mesmo tempo.
  • 39.
    Criando projeto real(uma roleta) Dica 1: int numeroAleatorio; void setup(){ numeroAleatorio = random(100, 300); // variavel numeroAleatorio recebe valor aleatorio entre 100 e 300. ….. …… Dica 2:
  • 40.
    Codigo int led[7] ={13,12,11,10,9,8,7}; int delayInicial = 50; //delay inicial int ledAtual = 0; int numeroAleatorio; void setup(){ for(int i = 0;i <= 6;i++){ pinMode(led[i], OUTPUT); } numeroAleatorio= random(100, 300); } void loop(){ for(int i = 0;i <= 6;i++){ if (delayInicial <= delayInicial) { ligaLed(i); } else { digitalWrite(led[ledAtual], HIGH); } } } void ligaLed(int i){ digitalWrite(led[i], HIGH); delay(delayInicial); digitalWrite(led[i], LOW); delayInicial+=2; ledAtual = i; }
  • 41.
    Comunicação I2C -Inter-Integrated Circuit
  • 42.
    Comunicação I2C -Inter-Integrated Circuit
  • 43.
    Comunicação I2C -Inter-Integrated Circuit
  • 44.
    Comunicação SPI -Serial Peripheral Interface
  • 45.
    Comunicação SPI -Serial Peripheral Interface
  • 46.
    Codigo int led[7] ={13,12,11,10,9,8,7}; int delayInicial = 50; //delay inicial int ledAtual = 0; int numeroAleatorio; void setup(){ for(int i = 0;i <= 6;i++){ pinMode(led[i], OUTPUT); } numeroAleatorio= random(100, 300); } void loop(){ for(int i = 0;i <= 6;i++){ if (delayInicial <= delayInicial) { ligaLed(i); } else { digitalWrite(led[ledAtual], HIGH); } } } void ligaLed(int i){ digitalWrite(led[i], HIGH); delay(delayInicial); digitalWrite(led[i], LOW); delayInicial+=2; ledAtual = i; }
  • 47.
  • 48.
  • 58.
    Obrigado! { "name": "Rogerio AlencarFilho", "hobby": "Analista de Sistemas (web!!!!)", "social": { "facebook": "https://facebook.com/rogerioalencar", "twitter": "https://twitter.com/rogerin", "github": "https://github.com/rogerin", "youtube": "https://youtube.com/user/rogerim", "slideshare": "https://slideshare.net/RogerioAlencarFilho" } }