Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Alan Francisco dos Santos alan.f.santos@gmail.com 67 – 98147-9293 ARDUINO mailto:alan.f.santos@gmail.com UNO LEONARDO MEGA 2560 MEGA ADK NANO MINI MODELOS DE PLACAS ARDUINO CARACTERISTICAS TECNICAS DE DIFERENTE MODELOS DE ARDUINO O PROJETO ARDUINO O projeto iniciou-se na cidade de Ivrea, Itália, em 2005, com o intuito de interagir em projetos escolares de forma a ter um orçamento menor que outros sistemas de prototipagem disponíveis naquela época. O sucesso foi sinalizado com o obtenção de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica, além da marca de mais de 50.000 placas vendidas até outubro de 2008. ARDUINO UNO ARDUINO UNO ORIGINAL ARDUINO UNO GENÉRICO ▪ Microcontrolador: ATmega328; ▪ Tensão de funcionamento: 5V; ▪ Tensão de entrada (recomendada): 7-9V; ▪ Limite de tensão: 6 a 20 Volts; ▪ Saídas digitais I/O – 14 pinos (dos quais 6 oferecem saída PWM); ▪ Saídas analógicas 3.3V - 6 pinos; ▪ Corrente DC por pino de I/O: 40mA; ▪ Corrente DC por pino: 50mA; ▪ Flash memory: 32Kb (ATmega328) 0,5 KB são utilizados pelo carregador de inicialização; ▪ SRAM: 2Kb (ATmega328); ▪ EEPROM: 1Kb (ATmega328); ▪ Clock Speed: 16MHz; ESPECIFICAÇÕES TÉCNICAS: CARACTERÍSTICAS FÍSICAS DA PLACA ARDUINO UNO Dimensões da Arduino UNO ITENS DA PLACA ARDUINO UNO Podemos alimentar o Arduino Uno pela porta USB com tensões definidas de 5V ou ainda por meio de fonte externa com tensões DC que podem variar entre 6 a 20 Volts, contudo, é recomendável que a tensão fornecida esteja entre 7 a 9V. TENSÃO DE ALIMENTAÇÃO – ARDUINO UNO NOTA: NÃO use uma fonte de alimentação superior a 15 V, pois você irá superar a tensão máxima do seu Arduino (e assim queimá-lo). A tensão recomendada para a maioria dos modelos Arduino é de 6 V a 12 V. ALIMENTAÇÃO (USB/CONECTOR P4) O Arduino UNO pode ser alimentado a partir de um cabo USB proveniente do seu computador ou a partir de uma fonte de alimentação de parede que é terminada em um conector P4. A conexão USB também é como você irá carregar o código em sua placa Arduino. Quando alimentar a sua placa por uma fonte externa, verifique se o terminal positivo (+) é o terminal interno do conector P4. REGULADOR DE TENSÃO A tensão VIN, proveniente de uma fonte externa, será aplicada na entrada do regulador de tensão, que fornecerá 5 VDC em sua saída para alimentar o MCU. CONECTOR - ICSP Ao centro da placa existe um pequeno LED ao lado da palavra "ON" (10). Este LED deve acender sempre que você ligar o Arduino a uma fonte de energia. Se esta luz não ligar, há uma boa chance de haver algo errado. LED INDICADOR DE ENERGIA LED INDICADOR DE LIGADO PORTAS DIGITAIS DO ARDUINO UNO São rotuladas de 0 a 13 e podem atuar como entrada ou saída digital (como indicar se um botão está pressionado) como para saída digital (como alimentar um LED);. Trabalham exclusivamente com dois níveis de tensão: o nível alto, representado por um sinal de tensão de 5V e o nível baixo, caracterizado por 0V. PORTAS DIGITAIS Comunicação serial: Portas 0 e 1 podem ser utilizadas para comunicação serial. Deve-se observar que estes pinos são ligados ao microcontrolador responsável pela comunicação USB com o PC. RxD TxD COMUNICAÇÃO SERIAL Cuidado: quando estiver ligado esses pinos, pode não aceitar gravação do firmware, por essas portas ser compartilhas com a porta USB TX é a abreviação para transmitir, o RX é a sigla para receber. Essas marcas aparecem um pouco na eletrônica para indicar os pinos responsáveis pela comunicação serial. No nosso caso, há dois lugares no Arduino UNO onde TX e RX aparecem: uma vez ao lado dos pinos digitais 0 e 1, e uma segunda vez ao lado dos LEDs indicadores TX e RX (11). Esses LEDs nos darão algumas boas indicações visuais sempre que nosso Arduino estiver recebendo ou transmitindo dados (como quando estamos carregando um novo programa na placa). LEDs TX e RX TX RX LED TX e RX PWM: 3,5,6,9,10 e 11 podem ser usados como saídas PWM de 8 bits através da função analogWrite(). PWM PWM PWM PWM PWM PWM PWM - Pulse Width Modulation Observe o til (~) ao lado de alguns dos pinos digitais (3, 5, 6, 9, 10 e 11 no UNO). Esses pinos atuam como pinos digitais normais, mas também podem ser utilizados para algo chamado Modulação por Largura de Pulso (PWM). PWM - Pulse Width Modulation PWM: 3,5,6,9,10 e 11 podem ser usados como saídas PWM de 8 bits através da função analogWrite(); ▪ Período: um ciclo completo. ▪ Ton: Tempo em que o pulso permanece em nível lógico alto. ▪ Toff: Tempo em que o pulso permanece em nível lógico baixo. ▪ Duty Cycle: Indica a porcentagem de tempo que o pulso esta em nível lógico alto. https://arduino.cc/en/Reference/AnalogWrite EXEMPLOS DE DUTY CYCLE Interrupção externa: 2 e 3 . Estes pinos podem ser configurados para gerar uma interrupção externa, através da função attachInterrupt() INTERRUPÇÕES Int 1 Int 0 Para interface com o mundo analógico, a placa Arduino UNO possui 6 entradas, onde cada uma tem a resolução de 10 bits. Por padrão a referencia do conversor AD está ligada internamente a 5V, ou seja, quando a entrada estiver com 5V o valor da conversão analógica digital será 1023. O valor da referência pode ser mudado através do pino AREF. A figura a seguir exibe a relação entre os pinos do microcontrolador ATMEL ATMEGA328 e a pinagem do Arduino UNO: 210=1024 AREF ARF TIMER O Atmega328, utilizado na placa Arduino UNO, possui 3 timers, sendo dois de 8 bits (TIMER0 e TIMER2) e um de 16 bits (TIMER1). Esses temporizadores são importantes para diversas funcionalidades, tais como: ▪ Temporização; ▪ Contagem de eventos externos; ▪ Geração de sinais PWM; ▪ Interrupções periódicas; ▪ Medida de intervalos de pulsos. A biblioteca do Arduino abstrai o uso destes temporizadores em muitas de suas funções. Por exemplos, as funções delay(), millis(), micros(), tone(), analogWrite() utilizam recursos de timers para o funcionamento. https://www.embarcados.com.br/timers -do-at mega32 8-no-arduino/ https://www.youtube.com/watch?v=Ll-oncfvunw https://www.embarcados.com.br/timers-do-atmega328-no-arduino/ https://www.youtube.com/watch?v=Ll-oncfvunw https://medium.com/@automacaoem5minutos/arduino -em-5-minutos-1-o-que -%C3% A9-uma -placa-a rduino-7ee3c7 33931e RESUMO DA PINAGEM DO ARDUINO https://medium.com/@automacaoem5minutos/arduino-em-5-minutos-1-o-que-%C3%A9-uma-placa-arduino-7ee3c733931e PORTAS ANALÓGICAS DO ARDUINO UNO PORTAS ANALÓGICAS A área dos pinos rotulada com "ANALOG IN" (A0 a A5 no UNO) é para os pinos analógicos. Esses pinos podem ler o sinal de um sensor analógico (como um sensor de luminosidade) e convertê-lo em um valor digital para usar no código; NOTA: geralmente os pinos analógicos do Arduino podem também ser usados como entrada ou saída digital (isso vale para A0 a A5 no UNO). TENSÕES DE SAÍDA DE 5V, 3V3, GND GND GND +5V +3,3V RESETGND: abreviação de "ground" (terra em inglês). Reset: Reinicia o Arduino. NOTA: o reset não apaga o código carregado na placa, ele serve somente para reiniciar a execução do programa. VIN - pino para alimentar a placa através de shield ou bateria externa. Quando a placa é alimentada através do conector Jack, a tensão da fonte estará nesse pino IOREF - Fornece uma tensão de referência para que shields possam selecionar o tipo de interface apropriada, dessa forma shields que funcionam com a placas Arduino que são alimentadas com 3,3V. podem se adaptar para ser utilizados em 5V. e vice-versa. 3,3 V. - Pode alimentar shields e módulos externos. Corrente máxima de 50 mA. 5 V - Fornece tensão de 5 V para alimentação de shields e circuitos externos. IOREF VIN SIMULADORES DE ARDUINO PLATAFORMA DE PROTOTIPAGEM ELETRÔNICA SIMULADOR ARDUINO - PROTEUS http://www.virtualbreadboard.com/ VIRTUAL BREADBOARD http://www.virtualbreadboard.com/ https://library.io/ SIMULADOR ON-LINE PARA ARDUINO https://library.io/ SIMULADORDE ARDUINO https://www.tinkercad.com/ https://www.tinkercad.com/ https://www.arduino.cc/ SITE OFICIAL DO ARDUINO https://www.arduino.cc/ ESQUEMA ELÉTRICO DO ARDUINO MICROCONTROLADOR ATMEGA328 ENCAPSULAMENTO 28 pinos 28 pinos ▪ CPU RISC (Reduced Instruction Set Computer) ▪ Arquitetura Harvard. ▪ Estrutura pipeline de 1 nível. ▪ Conjunto de 133 instruções ▪ Frequência máxima externa: 20 MHz ▪ Frequência máxima externa: 8 MHz ▪ Memória de programa (Flash): 32 KB. ▪ Memória SRAM: 2048 B. ▪ Memória EEPROM: 1024 B ▪ Registradores de 8 bits de uso geral. ▪ Temporizadores: 3 ▪ Comparador: 1 ▪ Módulo PWM com 6 canais. ▪ Módulo ADC: 6 conversores de 10bits. ▪ Interfaces de Comunicação: USART, SPI. ▪ Tensões: 1.8V ~ 5.5V CARACTERISTICAS A maioria das instruções são executadas em um ciclo de clock DIAGRAMA AVR CPU PINAGEM DO ATMEGA 328 PINAGEM DO ATMEGA 328 https://320volt.com/en/atmel-arduino-colored-connecti on-char t/ https://320volt.com/en/atmel-arduino-colored-connection-chart/ ALIMENTAÇÃO CLOCK É uma sequencia de impulsos elétricos (trem de pulso) que serve de sincronismo para circuitos alguns tipos de circuitos digitais, como microcontroladores, microprocessadores, entre outros. MEMÓRIAS 32KB 1KB 2KB MEMÓRIAS DO ARDUINO UNO MEMÓRIA DE DADOS A memória de dados (SRAM) é subdividida em blocos de registradores: MEMÓRIA UTILIZADAS EM MICROCONTROLADORES E MICROCOMPUTADORES Existe dois tipos de memória RAM, a SRAM (Static RAM) e a DRAM (Dynamic RAM). A SRAM é uma memória que retém dados enquanto estiver sendo alimentada eletricamente. Se tirar sua alimentação ela apaga os dados. RAM (Random Access Memory) A memória SRAM é volátil, rápida e alto custo. O microcontrolador utiliza essa memória para acesso rápido de escrita e leitura quando em execução SRAM (Static Random Access Memory) A DRAM é uma memória volátil, mantendo o seu conteúdo apenas quando alimentada eletricamente. DRAM (Dinamic Random Access Memory) As memórias ROM são memória que retém dados mesmo quando não estiverem sendo alimentadas eletricamente. Elas se diferenciam a partir do modo como são programadas e o número de vezes que podem ser escritas. Existem dois tipos: Memória ROM (Read-Only Memory): São memórias que permite varias regravações conforme a especificação do produto emitida pelo fabricante. EPROM são programáveis com exposição à luz. EPROM (Erasable-and-Programmable Read-Only Memory). São memórias que só aceita uma gravação. PROM ( Programmable Read-Only Memory) EEPROM (Electrically-Erasable-Programmable) São apagadas eletricamente e aceita reprogramações. Elas são iguais a EPROM, mas são programadas eletricamente enquanto que as EPROM são programáveis com exposição à luz. Uma desvantagem da EEPROM é o custo alto e o número limitado de ciclos de gravação Alta densidade, baixo custo, não-volátil e rápidas (para ler e não para escrever). Elas podem ser reescritas eletricamente como a EEPROM, porém são mais rápidas e gravam de setor a setor (grupo de bytes).Geralmente as memórias FLASH são utilizadas para gravar a programação do microcontrolador, por causa da velocidade e armazenamento. FLASH Esta memória é idêntica a SRAM, porém ela tem uma bateria de backup que ao ser desligada, a bateria de backup a alimenta e assim armazenando a memória. NVRAM (Non-Volatile RAM). RESISTORES DE PULL-DOWN – PULL-UP Os resistores de pull-down ou pull-up garantem estado inicial definido quando a chave estiver aberta. Estado lógico indefinido Estado lógico definido https://www.embarcados.com.br/leitur a-de-cha ves-de bounce/ https://www.embarcados.com.br/leitura-de-chaves-debounce/ ARDUINO - Resistores de pull-up Ligar o pino a 5V ou GND é irrelevante, pois o programa poderá escolher o que fazer em cada caso. Por exemplo, se escolhermos ligar uma chave a 5V, o valor no pino será HIGH quando a chave for pressionada, mas indefinido quando ela estiver aberta (veja ilustração abaixo). Usando um resistor de pull-down (tipicamente de 10k) ligando o pino inicialmente a GND, garantirá ao pino um estado inicial LOW que mudará para HIGH quando a chave for pressionada. Se usarmos a lógica oposta (conectar com GND/LOW em vez de 5V/HIGH) não precisaremos dos resistores, pois o Arduino possui internamente resistores de pull-up (ligados em 5V) para cada pino. Esta opção pode ser ativado configurando o pinMode() com INPUT_PULLUP: EFEITO BOUCING Estes tipo de componente apresenta um problema de oscilação do sinal no momento em que a tecla é pressionada. Esta oscilação é conhecida como bouncing Estas oscilações indevidas podem gerar acionamentos acidentais, causando mau funcionamento do programa. Para evitar isso podemos utilizar técnicas de debounce, por hardware ou software. DEBOUNCE POR HARDWARE Neste circuito, o capacitor desempenha o papel de amortecedor do sinal. Um circuito com um resistor e um capacitor possui um tempo de atraso para o sinal. Este é o tempo necessário para carregar o capacitor. Deste modo as alterações rápidas no sinal, devido à oscilação mecânica da chave, são filtradas e não ocorre o problema dos chaveamentos indevidos, como pode ser visto na figura 4. Notar que o nível do sinal filtrado não chega a zero em nenhum momento, devido à constante de tempo do filtro RC ser maior que o período de debounce. LEITURA DE CHAVES: DE-BOUNCING POR SOFTWARE https://www.embarcados.com.br/leitur a-de-cha ves-de bounce/ O debounce por software em geral é utilizado em situações onde se deseja aumentar a robustez de uma entrada que já possua um debounce por hardware ou reduzir o custo da placa utilizando apenas a solução por software. A grande desvantagem deste tipo de sistema de leitura de chaves é inserir um atraso na detecção da informação. https://www.embarcados.com.br/leitura-de-chaves-debounce/ ESPECIFICAÇÕES TÉCNICAS BÁSICAS DO ESP32 E ESP8266 MICROCONTROLADOR ESP8266. Em 2015, a empresa chinesa Espressif lançou o Microcontrolador ESP8266. MICROCONTROLADOR ESP8266. NodeMCU é uma plataforma open source da Internet das Coisas. Ela usa a linguagem de script Lua. Baseado no projeto eLua, foi construído sobre o SDK ESP8266 0.9.5 PINAGEM DO MICROCONTROLADOR ESP8266. MICROCONTROLADOR ESP32 Possui dois Microprocessadores Xtensa® 32-bit LX6 com até 600 DMIPS (velocidade de processamento). A frequência do clock pode ser de até 240 MHz, dependendo do modelo. A frequência mais comum é 160 MHz ( 10 vezes o clock do Arduino Uno). MICROCONTROLADOR ESP32 Lançamento: 2016 CPU: Xtensa® Dual-Core 32-bit LX6 ROM: 448 KBytes RAM: 520 Kbytes Flash: 4 MB Clock máximo: 240MHz Wireless padrão 802.11 b/g/n Conexão Wifi 2.4Ghz (máximo de 150 Mbps) Antena: embutida Conector micro-usb Modos de operação: STA/AP/STA+AP Bluetooth BLE 4.2 Pinos: 30 GPIO com funções de PWM, I2C, SPI, etc Tensão de operação: 4,5 ~ 9V Conversor analógico digital (ADC) ESPECIFICAÇÕES: DIAGRAMA EM BLOCOS DO CHIP ESP32 PINAGEM DO CHIP ESP32 ESP32 CHIP PINOUT (VISTO POR CIMA) 48 PINOS MODELOS DE MÓDULOS ESP32 https://docs.espressif.com/projects/esp-i df/en/l atest/hw-refer ence/modules-a nd-boa rds.html# ESP-WROOM-32 ESP32-WROVER ESP32 – PICO-D4 ▪ ESP-WROOM-32 , 32D e 32U (mais comum) ▪ ESP32-WROVER , WROVER-I, B e ID ▪ ESP32 – PICO-D4 A Espressif desenvolveu alguns tipos de mini-módulos com o Chip ESP32 – dual core : Todos esses módulos possuem uma memória Flash de 4 MBytes, onde fica armazenado o firmware (código). Os módulos mais recentes da linha Wrover já vem com uma memória PSRAM( RAM pseudo estática) de 8 MBytes. Existem também outros modelos de módulos ESP32, mas com single core, isto é, com um processador somente. Mas esses modelos não são comuns aqui no Brasil. https://docs.espressif.com/projects/esp-idf/en/latest/hw-reference/modules-and-boards.html PLACAS DE DESENVOLVIMENTO ESP32 Quando a Espressif lançou o ESP8266, ela só vendia o módulo sem regulador e sem interface USB-Serial. Isso dificultou para muitos, o uso desse módulo.Para evitar o mesmo erro, a Espressif lançou os módulos ESP32 e as placas de desenvolvimento (Development Boards) também : ESP32-LyraT https://www.espressif.com/en/products/hardw are/dev elopme nt-boar ds ESP-WROVER-KIT ESP32-PICO-KIT ESP-WROVER-KIT-VBESP32-DevKitCESP32-LyraTD-MSC https://www.espressif.com/en/products/hardware/development-boards PLATAFORMA COMPLETA DO ESP32 Alguns outros fabricantes, criaram as suas próprias versões de Placas de Desenvolvimento : ▪ WiPy 3.0 MycroPython da PYCOM https://blog.eletrogate.com/conhecendo-o-esp32-introducao-1/ ESP32 – Thing da SparkFun ESP32 DevKit V1 da DOIT ESP32 Feather Board da ADAFRUIT FireBeetle ESP32 da DFRobot PLACAS DE DESENVOLVIMENTO EQUIVALENTES Os Boards mais comuns encontrados aqui no Brasil , usam os módulos ESP-WROOM-32. Existem dois modelos de placas de desenvolvimento ESP32 DevKit, uma placa com 30 pinos e a outra com 38 pinos. As diferenças não são tão importantes, já que na Placa de 30 pinos não tem disponíveis os pinos para interface com o SD card ( SD0, SD1, SD2, SD3, CMD e CLK) . Não é recomendável o uso desses pinos, já que são usados pela memória Flash do módulo ESP32. ESP32 DevKit FIM
Compartilhar