Mini-curso de Introdução a Eletrônica com Arduino

24,733 views

Published on

Mini-curso de Introdução a Eletrônica com Arduino. Inclui exemplos de circuitos e códigos.
Autor: Felipe Nascimento Martins

2 Comments
41 Likes
Statistics
Notes
No Downloads
Views
Total views
24,733
On SlideShare
0
From Embeds
0
Number of Embeds
4,784
Actions
Shares
0
Downloads
2,201
Comments
2
Likes
41
Embeds 0
No embeds

No notes for slide

Mini-curso de Introdução a Eletrônica com Arduino

  1. 1. IntroduIntroduççãoão àà Eletrônica comEletrônica com ArduinoArduino Felipe Nascimento Martins v. 4 - 2013 VIII Jornada de Iniciação Científica, Desenvolvimento Tecnológico e Inovação do Ifes
  2. 2. O trabalho Introdução à Eletrônica com Arduino de Felipe Nascimento Martins foi licenciado com uma Licença Creative Commons - Atribuição- CompartilhaIgual 3.0 Não Adaptada.
  3. 3. http://nera.sr.ifes.edu.br Felipe Nascimento Martins
  4. 4. Contato: Twitter: @@f_n_martinsf_n_martins http://www.facebook.com/felipenmhttp://www.facebook.com/felipenm felipefelipe.n.martins@gmail.com.n.martins@gmail.com
  5. 5. 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... Felipe Nascimento Martins
  6. 6. Felipe Nascimento Martins
  7. 7. 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. Felipe Nascimento Martins
  8. 8. Arduino – hardware Felipe Nascimento Martins
  9. 9. Arduino – hardware Felipe Nascimento Martins
  10. 10. Arduino – software
  11. 11. 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 Felipe Nascimento Martins
  12. 12. Arduino é Open Source! Felipe Nascimento Martins
  13. 13. Arduino é Open Source! Felipe Nascimento Martins
  14. 14. 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. Felipe Nascimento Martins
  15. 15. 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... Felipe Nascimento Martins
  16. 16. 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 ArduinoArduino é marca registrada! Felipe Nascimento Martins
  17. 17. Clones do Arduino • Freeduino Felipe Nascimento Martins
  18. 18. Clones do Arduino • Seeduino Felipe Nascimento Martins
  19. 19. Clones do Arduino • Brasuíno Felipe Nascimento Martins
  20. 20. Clones do Arduino • Severino Felipe Nascimento Martins
  21. 21. Similares ao Arduino • chipKIT Uno32 - PIC32MX320F128 (32 bits, 80MHz, 128kB Flash, 16kB SRAM) Felipe Nascimento Martins
  22. 22. Similares ao Arduino • Olimexino – STM32F103RBT6 (núcleo ARM Cortex M3, 32 bits, 128kB, 72MHz) Felipe Nascimento Martins
  23. 23. Similares ao Arduino • Adafruit Trinket – ATtiny85 Felipe Nascimento Martins
  24. 24. Similares ao Arduino • LaunchPad - MSP430 Felipe Nascimento Martins
  25. 25. Similares ao Arduino • LaunchPad - MSP430 US$4,30 com frete grátis!! http://www.ti.com/tool/msp-exp430g2
  26. 26. Felipe Nascimento Martins
  27. 27. 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. Felipe Nascimento Martins
  28. 28. Felipe Nascimento Martins
  29. 29. 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. Felipe Nascimento Martins
  30. 30. Felipe Nascimento Martins Arduino Mega 2560
  31. 31. 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. Felipe Nascimento Martins
  32. 32. Componentes de um Microcontrolador Conversor D/A Conversor A/D PWM CPU EEPROM RAM Porta Serial Porta Paralela Temporizadores Microcontrolador Felipe Nascimento Martins
  33. 33. 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) Felipe Nascimento Martins
  34. 34. 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?? Felipe Nascimento Martins
  35. 35. 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) Felipe Nascimento Martins
  36. 36. 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.
  37. 37. 71612202,5132ATmega32u4Esplora 6168140,50,5/116/32 ATmega168 ou ATmega328 Nano 61661410,516/32 ATmega168V ou ATmega328V LilyPad 71612202,5132ATmega32u4Leonardo 1284125496--512AT91SAM3X8EDue 1516165484256ATmega2560Mega2560 1516165484128ATmega1280Mega 6166142132ATmega328PUno 6166140,50,5/116/32ATmega168/328PDuemilanove Pinos PWM Clock (MHz) Pinos A/D Dig. I/O SRAM kB EEPROM kB Flash kB ProcessadorArduino Arduino
  38. 38. Arduino - Microcontrolador Felipe Nascimento Martins
  39. 39. 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. Felipe Nascimento Martins
  40. 40. Arduino – Programa básico Felipe Nascimento Martins
  41. 41. Arduino – Programa básico Felipe Nascimento Martins
  42. 42. Arduino – Programa básico Felipe Nascimento Martins
  43. 43. Arduino – Programa básico Felipe Nascimento Martins
  44. 44. Arduino – Programa básico Felipe Nascimento Martins
  45. 45. Arduino – Programa básico Felipe Nascimento Martins
  46. 46. Arduino – Programa básico Felipe Nascimento Martins No Arduino Uno: pinos digitais 0 a 13 (0 a 13); pinos analógicos 0 a 5 (14 a 19).
  47. 47. Prática 1: Pisca-LED • Montagem: Felipe Nascimento Martins
  48. 48. Um pouco de eletrônica • Ok. Entendi o programa. • Mas o que acontece nos pinos do Arduino? Felipe Nascimento Martins
  49. 49. 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. Felipe Nascimento Martins
  50. 50. 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). Felipe Nascimento Martins
  51. 51. 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! Felipe Nascimento Martins +5V 0V
  52. 52. Um pouco de eletrônica • Em resumo: • É a circulação de corrente elétrica (elétrons) que faz acender o LED; • 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! Felipe Nascimento Martins +5V 0V
  53. 53. 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]. Felipe Nascimento Martins +5V 0V
  54. 54. 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. Felipe Nascimento Martins 0V 0V
  55. 55. Um pouco de eletrônica • Beleza. Mas, e o resistor? Serve para quê? Felipe Nascimento Martins
  56. 56. 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. Felipe Nascimento Martins
  57. 57. 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. Felipe Nascimento Martins
  58. 58. 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 Felipe Nascimento Martins
  59. 59. 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: • VR = R * I, R = 220 , I = 11,4 mA. • VR = 220 * 0,0114 = 2,5 V. Felipe Nascimento Martins
  60. 60. 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. Felipe Nascimento Martins +5V 0V
  61. 61. 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! Felipe Nascimento Martins +5V 0V
  62. 62. Simulador: 123d.circuits.io Felipe Nascimento Martins Detalhes: http://123d.circuits.io/circuits/34111/edit#
  63. 63. 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. Felipe Nascimento Martins
  64. 64. Diodo • Retificador de onda completa: Felipe Nascimento Martins
  65. 65. Diodo - exemplos Felipe Nascimento Martins
  66. 66. Matriz de contatos (Breadboard ou Protoboard) Felipe Nascimento Martins
  67. 67. Matriz de contatos (Breadboard ou Protoboard) Felipe Nascimento Martins
  68. 68. 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! Felipe Nascimento Martins
  69. 69. 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. Felipe Nascimento Martins
  70. 70. Capacitor - exemplos Felipe Nascimento Martins
  71. 71. Capacitor – exemplo de aplicação • Retificador de onda completa com capacitor: Felipe Nascimento Martins
  72. 72. 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? Felipe Nascimento Martins
  73. 73. Arduino • Outras funções: digitalRead(pino); Retorna 0 (Vpino < 2V) ou 1 (Vpino > 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. Felipe Nascimento Martins
  74. 74. Arduino • Outras funções: digitalRead(pino); Retorna 0 (Vpino < 2V) ou 1 (Vpino > 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. Felipe Nascimento Martins
  75. 75. Arduino • Outras funções: digitalRead(pino); Retorna 0 (Vpino < 2V) ou 1 (Vpino > 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. Felipe Nascimento Martins
  76. 76. Arduino • Outras funções: digitalRead(pino); Retorna 0 (Vpino < 2V) ou 1 (Vpino > 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. Felipe Nascimento Martins
  77. 77. LDR – Resistência variável com a luz Felipe Nascimento Martins
  78. 78. LDR – Resistência variável com a luz Felipe Nascimento Martins
  79. 79. LDR – Resistência variável com a luz Felipe Nascimento Martins O pino 13 tem um resistor interno!
  80. 80. 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); } Felipe Nascimento Martins
  81. 81. Arduino • A.
  82. 82. 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() { ... } Felipe Nascimento Martins
  83. 83. 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: Felipe Nascimento Martins
  84. 84. 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: Felipe Nascimento Martins
  85. 85. Comunicação serial • OK. • Mas como posso transmitir outras informações além de “zeros” e “uns”? Felipe Nascimento Martins
  86. 86. 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. Felipe Nascimento Martins
  87. 87. Tabela ASCII Felipe Nascimento Martins
  88. 88. 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; Felipe Nascimento Martins
  89. 89. 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(); Felipe Nascimento Martins
  90. 90. 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(""); } } Felipe Nascimento Martins
  91. 91. PWM • PWM = Pulse Width Modulation; • Razão cíclica (duty cycle): define a tensão média aplicada: T(PWM) T(PWM) T(PWM) A1 A2 A3 Felipe Nascimento Martins
  92. 92. Tensão média de um sinal PWM Felipe Nascimento Martins
  93. 93. Sinal PWM versus sinal analógico Felipe Nascimento Martins
  94. 94. 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. Felipe Nascimento Martins
  95. 95. 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 } Felipe Nascimento Martins
  96. 96. 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); } Felipe Nascimento Martins
  97. 97. Motor de Corrente Contínua (CC) Felipe Nascimento Martins • 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.
  98. 98. Motor de Passo Felipe Nascimento Martins • 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.
  99. 99. Servomotor Felipe Nascimento Martins
  100. 100. Servomotor Felipe Nascimento Martins • É 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;
  101. 101. Servomotor Felipe Nascimento Martins • Normalmente é feito com um motor de corrente contínua, um circuito eletrônico e engrenagens para aumentar o torque;
  102. 102. Servomotor Felipe Nascimento Martins • Três fios: 2 de alimentação e um de controle; • O sinal de referência (de posição ou velocidade) é do tipo PWM.
  103. 103. Servomotor Felipe Nascimento Martins • Três fios: 2 de alimentação e um de controle; • O sinal de referência (de posição ou velocidade) é do tipo PWM.
  104. 104. Prática 8: Controle de Servomotores Felipe Nascimento Martins
  105. 105. Felipe Nascimento Martins Prática 8: Controle de Servomotores
  106. 106. #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); } Felipe Nascimento Martins Prática 8: Controle de Servomotores
  107. 107. 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. Felipe Nascimento Martins
  108. 108. 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! Felipe Nascimento Martins
  109. 109. Prática 9: Motor CC com transistor Felipe Nascimento Martins
  110. 110. Prática 9: Motor CC com transistor Felipe Nascimento Martins
  111. 111. Avançando com Arduino: Shields • Pode acionar dois motores CC ou um motor de passo: até 36V, 600mA, 5kHz. Felipe Nascimento Martins
  112. 112. Avançando com Arduino: Shields • Exemplo: controle de velocidade dos motores com o Shield Motor Control: Felipe Nascimento Martins
  113. 113. Avançando com Arduino: Shields Felipe Nascimento Martins • Shield oficial para controle de motores:
  114. 114. Avançando com Arduino: Shields Felipe Nascimento Martins • Ethernet Shield:
  115. 115. Avançando com Arduino: RS-485 e I2C 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 Felipe Nascimento Martins
  116. 116. Avançando com Arduino Felipe Nascimento Martins Arduino Nano
  117. 117. Avançando com Arduino: Sem fio Detalhes: http://nossosrobos.blogspot.com.br/2011/12/arduino-wireless.html Felipe Nascimento Martins
  118. 118. Avançando com Arduino: Bluetooth Detalhes: http://nossosrobos.blogspot.com.br/2012/05/arduino-wireless-parte-ii-via-bluetooth.html Felipe Nascimento Martins
  119. 119. Avançando com Arduino: LCDs Detalhes: http://nossosrobos.blogspot.com.br/2012/01/lcd-para-seu-robo-com-arduino.html Felipe Nascimento Martins • LCD gráfico 128x128 pixels:
  120. 120. Avançando com Arduino: MATLAB Detalhes: http://nossosrobos.blogspot.com.br/2011/10/arduino-com-matlab.html Felipe Nascimento Martins
  121. 121. Avançando com Arduino: LabVIEW Detalhes: http://sine.ni.com/nips/cds/view/p/lang/pt/nid/209835 Felipe Nascimento Martins
  122. 122. Avançando com Arduino: Robô Detalhes: http://nossosrobos.blogspot.com.br/2012/09/monte-seu-robo-com-arduino.html Felipe Nascimento Martins
  123. 123. Robôs baseados em Arduino • DFRobotShop Rover - Arduino Compatible Tracked Robot Felipe Nascimento Martins
  124. 124. Robôs baseados em Arduino • DFRobotShop Rover 2.0 – Arduino Compatible Mecanum Felipe Nascimento Martins
  125. 125. Robô Arduino oficial • Arduino Robot Felipe Nascimento Martins Detalhes: http://nossosrobos.blogspot.com.br/2013/07/arduino-robot-o-primeiro-robo-arduino.html
  126. 126. Softwares gratuitos Felipe Nascimento Martins • 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
  127. 127. Referências Felipe Nascimento Martins • 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
  128. 128. Obrigado! Felipe N. Martins @@f_n_martinsf_n_martins www.facebook.com/felipenmwww.facebook.com/felipenm

×