Introdução. àeletrônica com Arduino. Felipe Nascimento Martins. VIII Jornada de Iniciação Científica, Desenvolvimento Tecnológico e Inovação do Ifes

Documentos relacionados
Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Introdução ao Arduino. Pessanha Santos ASPOF EN-AEL

Conceitos Fundamentais de Eletrônica

ARDUINO UNO Guia do Usuário

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

Arduino Hack Day PROMOVA VOCÊ TAMBÉM UM ARDUINO HACK DAY!

Minicurso Arduino JACEE 2012

InteropMix Arduino e Internet das Coisas. Leandro Ramos Leonardo Toledo Robson Machado

Servo Motores. Jener Toscano Lins e Silva

Viabilizado pela Organização do ERI MS; Apoiado pelo grupo ArduinoMS; Agradecimentos especiais ao do SENAC e UCDB.

Arduino. Wanderson Souza Professor de Robótica

Minicurso de Arduino

Introdução a Robótica, do NXT ao Arduino

Minicurso de Arduino

Professor: Fernando Krein Pinheiro

Comunicação Serial com o AVR ATMEGA8

Programação em Arduino

Tutorial de Eletrônica Aplicações com 555 v

Introdução do Arduino para aquisição de dados e controle de instrumentos

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

RECONHECIMENTO DE VOZ UTILIZANDO ARDUINO

1Manual do Program-ME... 6

Sistemas Embarcados. Introdução aos sistemas embarcados

Robótica com Arduino CDI. Professor: Paulo Marcos Trentin

Uma Introdução ao ARDUINO e suas Aplicações na Robótica. André F. Núñez

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

// Arduino {? } Mais o que é?..

PROGRAMAÇÃO DO TREINAMENTO:

Microcontrolador Arduino: Aplicação em controle PI

Arduíno. Adriano Cruz. 16 de setembro de Adriano Cruz () Arduíno 16 de setembro de / 51

Robótica com Arduino

Hacking Class Controlando tomadas da sua casa via Internet

Introdução ao Arduino

Robótica com Arduino. Resistores. Professor: Paulo Trentin

Controle universal para motor de passo

Parallel to Serial Shifting IN

Manual de funcionamento Esteira transportadora

Conheça o 4017 (ART062)

Eletrônica & Robótica open-source

Controle para Motores de Passo usando módulo USB-6008

Sistemas de Aquisição de Dados Baseado em Microcontroladores

Arduino Hack Day PROMOVA VOCÊ TAMBÉM UM ARDUINO HACK DAY!

Manual Técnico Arduino Supervisório MODBUS & Conversor RS485

PROTÓTIPO DE CONTROLE DE ACESSO POR RFID

Alarme Automotivo com mensagem para móvel utilizando Arduino

ARDUINO. Níveis lógicos de referência VCC e GND Entradas e saídas digitais e analógicas.

SENSOR DE LUMINOSIDADE Com indicador de intervalo

Arquitetura do Microcontrolador Atmega 328

Módulo de Desenvolvimento PIC16F877A

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

Introdução. Criar um sistema capaz de interagir com o ambiente. Um transdutor é um componente que transforma um tipo de energia em outro.

Prá$cas Arduino. Manoel Neto

Eletrônica Industrial Apostila sobre Modulação PWM página 1 de 6 INTRODUÇÃO

CONSTRUÇÃO DE VEÍCULO MECATRÔNICO COMANDADO REMOTAMENTE

Kit de desenvolvimento ACEPIC 40N

5 Entrada e Saída de Dados:

Introdução a Arduino e Raspberry Pi

AULA2 Introdução a Microcontrolador

AUTOMAÇÃO INDUSTRIAL INTRODUÇÃO A ROBÓTICA

TUTORIAL Arduino Nano

ANEXO I. Medidas (Largura, Altura, Profundidade): 45 mm, 20 mm, 15 mm; Parafusos e porcas para fixação e espaçadores se necessário;

PROJETO. Ponte Digital. Luciano Daniel Amarante - carabina@pop.com.br Ricardo Watzko - rw@netuno.com.

Open Hardware & Arduino

Concurso Público para Cargos Técnico-Administrativos em Educação UNIFEI 13/06/2010

Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br

Disciplina: Laboratório de Fis26

Hewerson Antonio Perdomo Jacquet Luana Loubet Borges Ricardo Espindola de Aguiar Riccieli Kendy Zan Minakawa Prof. Ricardo Ribeiro dos Santos

Easy Lab. Manual do usuário Revisão /11/14. DMA Electronics 1

TEM VÁRIOS ESTADOS: 0V,0.1V,3V,3.3V,4V,5V,10V, ETC.

1. INTRODUÇÃO COMPUTADOR

Comunicação de dados. Introdução

BEC- Bafômetro Embutido em Carros

AUTOMAҪÃO INDUSTRIAL E LINHAS DE PRODUҪÃO FLEXÍVEIS

Simulação de Circuitos Microcontrolados com o Proteus

Motor de Passo - Arduino

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CÂMPUS CURITIBA CURSO DE ENGENHARIA DE COMPUTAÇÃO

1- Scilab e a placa Lab_Uino. 2- Instalação do ToolBox

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

Controle e monitoramento da fonte de alta-tensão: proposta, desenvolvimento e estágio atual.

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza

Arduino e Proteus (Tutorial)

Prof. Ivair Teixeira INTEGRAÇÃO ANDROID & ARDUINO

Medidor da temperatura local

PIC18F4550. Curso Engenharia de Controle e Automação. Alex Vidigal Bastos alexvbh@gmail.com

Copyright 2013 VW Soluções


TÍTULO: BRAÇO MECÂNICO AUTOMATIZADO USANDO UM CONTROLADOR ARDUINO GUIADO POR UM SENSOR DE COR RGB

Arduino MS. Sobre esta Oficina. Oriunda do Arduino Hack Day Organizado pelos Coordenadores do ArduinoMS Agradecimentos ao apoio do SENAC

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Composição do MDK-Prog e MDK-Prog Plus

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) /

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Projeto de Circuitos. Introdução ao Computador 2008/01 Bernardo Gonçalves

Programação de Robótica: Modo Circuitos Programados - Avançado -

Arduino. Gilmar Aquino

Conversores D/A e A/D

Prática 8: Comunicação SPI. 8.1 Introdução e objetivos. 8.2 Princípios básicos do protocolo SPI

Transcrição:

v. 4-2013 VIII Jornada de Iniciação Científica, Desenvolvimento Tecnológico e Inovação do Ifes Introdução àeletrônica com Arduino

O trabalho Introdução à Eletrônica com Arduino de foi licenciado com uma Licença Creative Commons - Atribuição- CompartilhaIgual 3.0 Não Adaptada.

http://nera.sr.ifes.edu.br

Contato: Twitter:@f_n_martins http://www.facebook.com/felipenm felipe.n.martins@gmail.com

Conteúdo Arduino; Microcontrolador; Primeiro programa; Um pouco de eletrônica (pouco mesmo!); Programas mais legais; Práticas (montagem e programação); Avançando com o Arduino: shields, comunicação sem fio, aplicações em robótica...

O que é Arduino? Arduino é uma plataforma de prototipagem eletrônica open-source, baseada nos princípios de flexibilidade e facilidade de uso para hardware e software. Consiste de uma placa com microcontrolador programável preparada para receber sinais de sensores e acionar atuadores. Sua linguagem de programação é baseada em Wiring (baseado em C/C++). A placa pode funcionar em conjunto ou de forma independente do computador.

Arduino hardware

Arduino hardware

Arduino software

Arduino é Open Source Desenvolvido por: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis, na Itália, em 2005; Todo o projeto é aberto: open source hardware and software; 200 placas vendidas em 2005, 5.000 em 2006, 30.000 em 2007 e mais de 300.000 em 2011 e cerca de 1 milhão até setembro de 2013! Site oficial: www.arduino.cc

Arduino é Open Source!

Arduino é Open Source!

Arduino é Open Source! Todo o hardware é aberto e os projetos estão disponíveis. Quem quiser, pode comprar os componentes e montar a sua placa! O software de programação também é livre e está disponível para download gratuitamente.

Arduino é Open Source! Todo o hardware é aberto e os projetos estão disponíveis. Quem quiser, pode comprar os componentes e montar a sua placa! O software de programação também é livre e está disponível para download gratuitamente. Mas...

Arduino é Open Source! Todo o hardware é aberto e os projetos estão disponíveis. Quem quiser, pode comprar os componentes e montar a sua placa! O software de programação também é livre e está disponível para download gratuitamente. Mas... O nome Arduino é marca registrada!

Clones do Arduino Freeduino

Clones do Arduino Seeduino

Clones do Arduino Brasuíno

Clones do Arduino Severino

Similares ao Arduino chipkit Uno32 - PIC32MX320F128 (32 bits, 80MHz, 128kB Flash, 16kB SRAM)

Similares ao Arduino Olimexino STM32F103RBT6 (núcleo ARM Cortex M3, 32 bits, 128kB, 72MHz)

Similares ao Arduino Adafruit Trinket ATtiny85

Similares ao Arduino LaunchPad - MSP430

Similares ao Arduino LaunchPad - MSP430 US$4,30 com frete grátis!! http://www.ti.com/tool/msp-exp430g2

Arduino Uno Microcontrolador: ATmega328; Tensão de operação: 5V; Tensão de entrada (recomendada): 7-12V; Pinos digitais de E/S:14 (6 podem ter sinal PWM); Pinos com entrada analógica: 6; Corrente máxima por pino de E/S: 40 ma; Hardware para comunicação serial: 1 porta; Memória Flash (de programa): 32 kb, dos quais 0,5 kb são usados pelo bootloader; Memória SRAM: 2 kb; EEPROM: 1 kb; Frequência de clock: 16 MHz.

Arduino Mega 2560 Microcontrolador: ATmega2560; Tensão de operação: 5V; Tensão de entrada (recomendada): 7-12V; Pinos digitais de E/S: 54 (15 podem ter sinal PWM); Pinos com entrada analógica: 16; Corrente máxima por pino de E/S: 40 ma; Hardware para comunicação serial: 4 portas; Memória Flash (de programa): 256 kb, dos quais 8 kb são usados pelo bootloader; Memória SRAM: 8 kb; EEPROM: 4 kb; Frequência de clock: 16 MHz.

Arduino Mega 2560

O que é um Microcontrolador? Chip; CPU de pequeno porte, capaz de executar um conjunto de instruções; Ou seja, possui um microprocessador! Instruções simples e rápidas; Possui memória(s); Possui periféricos; Pode se comunicar com outros periféricos; etc.

Componentes de um Microcontrolador Microcontrolador Conversor D/A EEPROM Porta Serial Conversor A/D CPU Porta Paralela PWM RAM Temporizadores

Exemplos de Microcontroladores Família 8051 (Intel ou ATMEL) 80C196KB (Intel) 68HC11 (Motorola / Freescale) MSP430 (Texas Instruments) ATmega328 (ATMEL) PIC16F628A (Microchip) dspic30f6014 (Microchip) Cortex M3 (ARM)

Exemplos de Microcontroladores Família 8051 (Intel ou ATMEL) 80C196KB (Intel) 68HC11 (Motorola / Freescale) MSP430 (Texas Instruments) ATmega328 (ATMEL) PIC16F628A (Microchip) dspic30f6014 (Microchip) Cortex M3 (ARM) Cadê o Arduino??

Exemplos de Microcontroladores Família 8051 (Intel ou ATMEL) 80C196KB (Intel) 68HC11 (Motorola / Freescale) MSP430 (Texas Instruments) ATmega328 (ATMEL) PIC16F628A (Microchip) dspic30f6014 (Microchip) Cortex M3 (ARM)

Microcontroladores do Arduino ATMEL ATmega168: Diecimila, Duemilanove, Nano, LilyPad; ATmega328P: Duemilanove, Nano, Fio, LilyPad, Uno; ATmega1280: Mega; ATmega2560: Mega2560; ATmega32u4: Leonardo, Esplora, LilyPad USB, Yún, Robot; AT91SAM3X8E: Due.

7 16 12 20 2,5 1 32 ATmega32u4 Esplora 6 16 8 14 0,5 0,5/1 16/32 ATmega168 ou ATmega328 Nano 6 16 6 14 1 0,5 16/32 ATmega168V ou ATmega328V LilyPad 7 16 12 20 2,5 1 32 ATmega32u4 Leonardo 12 84 12 54 96 -- 512 AT91SAM3X8E Due 15 16 16 54 8 4 256 ATmega2560 Mega2560 15 16 16 54 8 4 128 ATmega1280 Mega 6 16 6 14 2 1 32 ATmega328P Uno 6 16 6 14 0,5 0,5/1 16/32 ATmega168/328P Duemilanove Pinos PWM Clock (MHz) Pinos A/D Dig. I/O SRAM kb EEPROM kb Flash kb Processador Arduino Arduino

Arduino - Microcontrolador

Arduino - Microcontrolador ATmega328: Núcleo AVR RISC de 8 bits; 32kB Flash, 2kB RAM, 1kB EEPROM; 23 pinos de E/S; 3 temporizadores/contadores; USART; interface a 2 fios SPI; 6 canais de conversor A/D de 10 bits; WDT com oscilador interno; Clock máximo de 20MHz; Opera de 1,8V a 5,5V.

Arduino Programa básico

Arduino Programa básico

Arduino Programa básico

Arduino Programa básico

Arduino Programa básico

Arduino Programa básico

Arduino Programa básico No Arduino Uno: pinos digitais 0 a 13 (0 a 13); pinos analógicos 0 a 5 (14 a 19).

Prática 1: Pisca-LED Montagem:

Um pouco de eletrônica Ok. Entendi o programa. Mas o que acontece nos pinos do Arduino?

Um pouco de eletrônica Ok. Entendi o programa. Mas o que acontece nos pinos do Arduino? A função digitalwrite(12,high); faz com que o pino 12 vá para nível alto, ou seja, ele fica com 5V.

Um pouco de eletrônica Ok. Entendi o programa. Mas o que acontece nos pinos do Arduino? A função digitalwrite(12,high); faz com que o pino 12 vá para nível alto, ou seja, ele fica com 5V. Este pino está ligado ao RESISTOR+LED, e ao pino GND (0V).

Um pouco de eletrônica Ok. Entendi o programa. Mas o que acontece nos pinos do Arduino? A função digitalwrite(12,high); faz com que o pino 12 vá para nível alto, ou seja, ele fica com 5V. Este pino está ligado ao RESISTOR+LED, e ao pino GND (0V). É um circuito série, por onde circula corrente! 0V +5V

Um pouco de eletrônica Em resumo: É a circulação de corrente elétrica (elétrons) que faz acender o LED; +5V Experimente retirar o fio que liga o LED ao GND, mantendo o pino 12 em 5V. O LED apaga pois a corrente precisa circular num circuito fechado! 0V

Um pouco de eletrônica Em resumo: É a circulação de corrente elétrica (elétrons) que faz acender o LED; A corrente só existirá se houver diferença de potencial elétrico (diferença de tensão) entre pontos do circuito: 5V 0 = 5V; Tensão: volt [V]; Corrente: ampère [A]. 0V +5V

Um pouco de eletrônica A função digitalwrite(12,low); faz com que o pino 12 vá para nível baixo, ou seja, ele fica com 0V. Logo, como não há diferença de tensão entre os pinos 12 e GND, a corrente é zero => LED apaga. 0V 0V

Um pouco de eletrônica Beleza. Mas, e o resistor? Serve para quê?

Um pouco de eletrônica Beleza. Mas, e o resistor? Serve para quê? O elemento resistor serve para dificultar a circulação de corrente elétrica; Ele é colocado no circuito para evitar que a corrente cresça muito, o que pode provocar problemas; No nosso circuito, o resistor serve para evitar que o LED queime devido a uma corrente muito alta.

Um pouco de eletrônica Quanto maior for o valor da resistência do resistor, menor será a corrente (para uma mesma diferença de tensão). O brilho do LED varia com a corrente.

Um pouco de eletrônica Cálculo da corrente: Lei de Ohm: V = R * I V = 5V, R = 220Ω. I = 5 / 220 I = 0,0227 A = 22,7 ma

Um pouco de eletrônica Cálculo da corrente: Lei de Ohm: V = R * I V = 5V, R = 220Ω + 220Ω. I = 5 / 440 I = 0,0114 A = 11,4 ma Podemos calcular a queda de tensão em cada resistor: V R = R * I, R = 220Ω, I = 11,4 ma. V R = 220 * 0,0114 = 2,5 V.

Um pouco de eletrônica Cálculo da corrente: O LED tem queda de tensão fixa = ~1,73V. Logo: V = 5 1,73 = 3,27V. V = R * I => I = V / R. I = 3,27 / 220 = 0,0149 A I = 14,9mA. +5V 0V

Um pouco de eletrônica Note que se a tensão do pino 12 pudesse ser alterada, a corrente no circuito seria diferente. Ou seja, poderíamos controlar o brilho do LED! +5V 0V

Simulador: 123d.circuits.io Detalhes: http://123d.circuits.io/circuits/34111/edit#

Diodo Dispositivo semicondutor que permite a circulação de corrente apenas em um sentido; A tensão em seus terminais deve ter polaridade correta: mais positiva no terminal A (anodo) e mais negativa no terminal K (catodo); Apresenta queda de tensão aproximadamente fixa (~0,7V) quando a corrente circula; Usado em circuitos retificadores: transforma corrente alternada para contínua.

Diodo Retificador de onda completa:

Diodo - exemplos

Matriz de contatos (Breadboard ou Protoboard)

Matriz de contatos (Breadboard ou Protoboard)

Prática 1.1: Não pisca-led LED é um diodo especial que brilha quando a corrente circula por ele. Experimente inverter a ligação dos pinos do LED em nosso circuito e verifique que ele não vai mais piscar, mesmo quando houver diferença de potencial nos pinos!

Capacitor Elemento que armazena energia na forma de campo elétrico; Existem vários tipos: alguns têm polaridade (como os eletrolíticos), outros não (como os cerâmicos); A tensão em seus terminais depende da carga acumulada, e não varia instantaneamente; Em corrente contínua, são usados como filtros ou suavizadores de tensão.

Capacitor - exemplos

Capacitor exemplo de aplicação Retificador de onda completa com capacitor:

Prática 2: Pisca-LED com Capacitor Monte o circuito ao lado. Use o mesmo programa da prática 1, mas altere o tempo de espera para 5 segundos; Rode o programa e verifique o resultado; Depois, retire o capacitor e rode o mesmo programa. O que muda?

Arduino Outras funções: digitalread(pino); Retorna 0 (V pino < 2V) ou 1 (V pino > 3V). analogread(pino); Obtém valor entre 0 e 1023 proporcional à tensão no pino (entre 0 e 5V). Tempo de conversão = 100µs. while(analogread(a2) < 950); Mantém-se em loop até que o valor de retorno da função analogread seja maior que 800. for(int conta = 0; conta < 6; conta++) Loop: executa o bloco de código até que conta >= 6.

Arduino Outras funções: digitalread(pino); Retorna 0 (V pino < 2V) ou 1 (V pino > 3V). analogread(pino); Obtém valor entre 0 e 1023 proporcional à tensão no pino (entre 0 e 5V). Tempo de conversão = 100µs. while(analogread(a2) < 950); Mantém-se em loop até que o valor de retorno da função analogread seja maior que 800. for(int conta = 0; conta < 6; conta++) Loop: executa o bloco de código até que conta >= 6.

Arduino Outras funções: digitalread(pino); Retorna 0 (V pino < 2V) ou 1 (V pino > 3V). analogread(pino); Obtém valor entre 0 e 1023 proporcional à tensão no pino (entre 0 e 5V). Tempo de conversão = 100µs. while(analogread(a2) < 950); Mantém-se em loop até que o valor de retorno da função analogread seja maior que 950. for(int conta = 0; conta < 6; conta++) Loop: executa o bloco de código até que conta >= 6.

Arduino Outras funções: digitalread(pino); Retorna 0 (V pino < 2V) ou 1 (V pino > 3V). analogread(pino); Obtém valor entre 0 e 1023 proporcional à tensão no pino (entre 0 e 5V). Tempo de conversão = 100µs. while(analogread(a2) < 950); Mantém-se em loop até que o valor de retorno da função analogread seja maior que 800. for(int conta = 0; conta < 6; conta++) Loop: executa o bloco de código até que conta >= 6.

LDR Resistência variável com a luz

LDR Resistência variável com a luz

LDR Resistência variável com a luz O pino 13 tem um resistor interno!

Prática 3: Usando o sensor de luz Monte o circuito com o LDR Light Dependent Resistor e execute o seguinte programa: void setup() { Serial.begin(9600); } void loop() { int sensor = analogread(a2); Serial.println(sensor, DEC); }

Arduino A.

Prática 4: Usando o sensor de luz Monte o circuito com LDR Light Dependent Resistor (sensor de luz). Escreva um programa que acenda o LED do pino 13 quando houver pouca luz e apague o mesmo LED quando houver muita luz. void setup() { }... void loop() { }...

Comunicação serial Bit: menor unidade de informação -> 0 ou 1; Informação é enviada bit a bit, em sequência; Síncrona: uma linha de dados e outra de clock:

Comunicação serial Bit: menor unidade de informação -> 0 ou 1; Informação é enviada bit a bit, em sequência; Assíncrona: apenas uma linha de dados. A velocidade deve ser definida:

Comunicação serial OK. Mas como posso transmitir outras informações além de zeros e uns?

Comunicação serial OK. Mas como posso transmitir outras informações além de zeros e uns? Existe uma tabela que relaciona caracteres a sequências de zeros e uns: ASCII (American Standard Code for Information Interchange). Esta tabela criou um padrão para troca de informações em sistemas binários.

Tabela ASCII

Arduino Microcontrolador possui hardware para comunicação serial: Pino digital 0 (RX): recepção de dados; Pino digital 1 (TX): transmissão de dados; Bit 1 = 5V; Bit 0 = 0V; A maioria das placas Arduino possui hardware que converte sinais do padrão serial assíncrono para USB;

Prática 5: Comunicação bidirecional Outro exemplo de comunicação serial: desta vez o Arduino vai receber um dado do computador, processá-lo e retornar o resultado pela porta serial. Vamos analisar o programa: int i, numero; void setup() { } Serial.begin(9600); void loop() { while (true) { Serial.print("Entre com um numero: "); while (Serial.available()==0); numero = Serial.read();

} if (numero>='0' && numero<='9') Serial.println(numero, BYTE); else { Serial.println("O valor deve ser numerico!"); } } continue; numero-='0'; for (i = 0; i <= 10; i++) { } Serial.print(numero); Serial.print(" x "); Serial.print(i); Serial.print(" = "); Serial.println(numero*i); Serial.println("");

PWM PWM = Pulse Width Modulation; Razão cíclica (duty cycle): define a tensão média aplicada: A1 A2 A3 T (PWM) T (PWM) T (PWM)

Tensão média de um sinal PWM

Sinal PWM versus sinal analógico

Controle de potência por PWM analogwrite(11, 200); cria no pino 11 um sinal PWM com razão cíclica igual a 200; f = 490Hz; apenas alguns pinos digitais possuem saída PWM.

Prática 6: Controle de brilho PWM int brilho = 0; // brilho do LED int sensor // valor do LDR void setup() { pinmode(a2, INPUT); // pino do LDR: entrada A2 pinmode(11, OUTPUT); // pino do LED: saida 11 Serial.begin(9600); } void loop() { sensor = analogread(a2); // le do LDR brilho = map(sensor, 0, 1023, 0, 255); Serial.println(brilho, DEC); // envia ao PC analogwrite(11, brilho); // aciona LED }

Prática 7: Pisca-pisca suave int brilho = 0; // brilho do LED int variacao = 5; // quanto varia o brilho void setup() { pinmode(11, OUTPUT); } void loop() { analogwrite(11, brilho); brilho = brilho + variacao; if (brilho == 0 brilho == 255) { variacao = -variacao; } delay(30); }

Motor de Corrente Contínua (CC) Alimentado em corrente contínua; Possui ímã e bobinas internamente; Velocidade é ajustada pela tensão de alimentação (pode ser por PWM!); Sentido de giro é alterado pela polaridade.

Motor de Passo Alimentado com sinais digitais; Alimentação das bobinas deve ser sequencial; Permite controle preciso de posição; Torque cai muito com o aumento da velocidade.

Servomotor

Servomotor É um motor CC que possui um sistema de interno de controle: angular controla a posição (giro) do eixo; contínuo controla a velocidade do eixo;

Servomotor Normalmente é feito com um motor de corrente contínua, um circuito eletrônico e engrenagens para aumentar o torque;

Servomotor Três fios: 2 de alimentação e um de controle; O sinal de referência (de posição ou velocidade) é do tipo PWM.

Servomotor Três fios: 2 de alimentação e um de controle; O sinal de referência (de posição ou velocidade) é do tipo PWM.

Prática 8: Controle de Servomotores

Prática 8: Controle de Servomotores

Prática 8: Controle de Servomotores #include <Servo.h> Servo myservo; // create servo object Servo myservo2; int potpin = 0; // used to connect the potentiometer int val; // value from the analog pin void setup() { myservo.attach(9); // attaches the servo on pin myservo2.attach(10); } void loop() { val = analogread(potpin); // entre 0 e 1023 val = map(val, 0, 1023, 0, 179); // escalona myservo.write(val); myservo2.write(179-val); delay(15); }

Outros motores com Arduino Cada pino do Arduino pode fornecer, no máximo, 40mA de corrente -> pode não ser suficiente para acionar um motor! Solução: usar transistores.

Transistor Um transistor pode ser entendido como uma válvula eletrônica: é capaz de acionar cargas de alta corrente a partir de um sinal de controle de baixa corrente. Quanto maior for a corrente no pino de base (B), maior será a corrente entre os pinos coletor (C) e emissor (E). Por exemplo, se a corrente na base variar de 0 a 0,01 A, a corrente de coletor pode variar de 0 a 1A!

Prática 9: Motor CC com transistor

Prática 9: Motor CC com transistor

Avançando com Arduino: Shields Pode acionar dois motores CC ou um motor de passo: até 36V, 600mA, 5kHz.

Avançando com Arduino: Shields Exemplo: controle de velocidade dos motores com o Shield Motor Control:

Avançando com Arduino: Shields Shield oficial para controle de motores:

Avançando com Arduino: Shields Ethernet Shield:

Avançando com Arduino: RS-485 e I 2 C Detalhes: http://nossosrobos.blogspot.com.br/2011/08/arduino-conversando-com-nxt-via-rs-485.html http://nossosrobos.blogspot.com.br/2013/03/comunicacao-ic-entre-lego-nxt-e-arduino.html

Avançando com Arduino Arduino Nano

Avançando com Arduino: Sem fio Detalhes: http://nossosrobos.blogspot.com.br/2011/12/arduino-wireless.html

Avançando com Arduino: Bluetooth Detalhes: http://nossosrobos.blogspot.com.br/2012/05/arduino-wireless-parte-ii-via-bluetooth.html

Avançando com Arduino: LCDs LCD gráfico 128x128 pixels: Detalhes: http://nossosrobos.blogspot.com.br/2012/01/lcd-para-seu-robo-com-arduino.html

Avançando com Arduino: MATLAB Detalhes: http://nossosrobos.blogspot.com.br/2011/10/arduino-com-matlab.html

Avançando com Arduino: LabVIEW Detalhes: http://sine.ni.com/nips/cds/view/p/lang/pt/nid/209835

Avançando com Arduino: Robô Detalhes: http://nossosrobos.blogspot.com.br/2012/09/monte-seu-robo-com-arduino.html

Robôs baseados em Arduino DFRobotShop Rover - Arduino Compatible Tracked Robot

Robôs baseados em Arduino DFRobotShop Rover 2.0 Arduino Compatible Mecanum

Robô Arduino oficial Arduino Robot Detalhes: http://nossosrobos.blogspot.com.br/2013/07/arduino-robot-o-primeiro-robo-arduino.html

Softwares gratuitos IDE de programação do Arduino: www.arduino.cc Fritzing - para fazer esquemas elétricos, de proto-board e placas de circuito impresso: www.fritzing.org 123D Circuits.io - para simulação de circuitos com ou sem Arduino e projeto de placas de circuito impresso (roda no navegador): http://123d.circuits.io

Referências VALPEREIRO, Filipe. Workshop Arduino, 2008. JUSTEN, Álvaro. Curso de Arduino (apostila), 2011. FONSECA, Érika e BEPPU, Mathyan. Apostila Arduino. CT/UFF, 2010. ERIKSSON, Fredrik. Industrial Circuits Application Note - Stepper Motor Basics. POMÍLIO, J.A. Eletrônica de Potência. UNICAMP (apostila para o curso de graduação). Acesso em AGO/2010. Blog: www.nossosrobos.blogspot.com Site oficial do Arduino: www.arduino.cc http://www.labdegaragem.com.br/wiki

Obrigado! Felipe N. Martins @f_n_martins www.facebook.com/felipenm