Prévia do material em texto
Técnico em Eletroeletrônica Introdução ao Prof. Renan Imamura renan.imamura@gmail.com ESCOLA SENAI “Humberto Reis Costa" O que é o Arduino? O Arduino é 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. Conceitos Básicos • Microcontrolador Atmel Assim como um computador, o microcontrolador possui: 1. Microprocessador (ULA – Unidade Lógica Aritmética) 2. Memória RAM 3. Memória Flash (para guardar o software) 4. Temporizadores 5. Contadores 6. Periféricos Tipos de ARDUINOS Recursos do projeto Características ARDUINO UNO • Microcontrolador Amega 328P • Tensão de operação 5V • Tensão de Entrada 7 – 12V • I/Os 14 Pinos (20 mA) • 6 PWMs • 6 entradas analógicas 0 a 5V • Memória Flash 32KB • Memória RAM 2KB • EEPRON 1KB Conceitos Básicos Conceitos Básicos de Programação • O ARDUINO é um computador que segue instruções detalhadas dadas por seres humanos. • Para que o ARDUINO execute uma determinada tarefa, devemos programa-lo. • Um programa é uma sequência de instruções codificadas em uma linguagem de programação Conceitos Básicos De Programação Entradas Recebe os sinais do mundo físico convertidos em sinais elétricos. Processamento Manipulam, interpretam e transformam os sinais. Saídas Atualiza as saídas conforme instruções dadas pela programação Sensores Atuadores, indicadores Variáveis Digitais São caracterizadas por possuírem dois estados diferentes • Verdadeiro / Falso ou 0 / 1 ou HIGH / LOW Variáveis Analógicas São aquelas que podem tomar um número infinito de valores compreendidos dentro de dois limites. Ex. Temperatura, Pressão, Som, Luminosidade. Conceitos Básicos Ambiente de Desenvolvimento (IDE) IDE – Integrated Development Environment Principais funcionalidades são: • Escrever códigos de programação; • Salvar os códigos de programação; • Compilar um programa; • Transferir o código compilado ao ARDUINO. Ambiente de Desenvolvimento (IDE) Funções setup() e loop() São duas principais partes de um programa desenvolvido para ARDUINO. setup(): onde devem ser definidas algumas configurações iniciais do programa. Executa uma única vez! loop(): função principal do programa. Fica executando indefinidamente! Funções setup() e loop() São duas principais partes de um programa desenvolvido para ARDUINO. Funções Digitais Função pinMode() -> Utilizada dentro do void setup() Determina a função da porta digital, entrada ou saída. pinMode(pino, modo) • pino: número da porta digital do arduino; • modo: defini se a porta é uma entrada ou saída digital. Função digitalWrite() Escreve um estado para uma saída digital. digitalWrite(pino, estado) • pino: número da porta digital do arduino; • estado: HIGH / LOW -> 5 v ou 0 v Funções Digitais Função digitalWrite() Funções Digitais Atraso no Programa Função delay() Trava o programa por tempo determinado. delay(ms) • ms: tempo em milisegundos Primeiro Programa: Blink Primeiro Programa Função pinMode() pinMode(número do pino, função) Função digitalWrite() -> Saída Digital digitalWrite(número do pino, estado)Função dealy() Delay(tempo de espera em ms) Primeiro Programa 1. Conectar o arduino à entrada USB do computador 2. Informar qual modelo do Arduino Primeiro Programa 1. Conectar o Arduino à entrada USB do computador 2. Informar qual modelo do Arduino 3. Selecionar a porta em que o Arduino está conectado. Primeiro Programa 1. Conectar o Arduino à entrada USB do computador. 2. Informar qual modelo do Arduino. 3. Selecionar a porta em que o Arduino está conectado. 4. Gravar o código na placa. Carregar! Verificar! Pronto! Pronto! Seu programa está rodando no Arduino! Conceitos Básicos Atividade Realizar um projeto de semáforo conforme a lógica abaixo: • Sinal verde (8 segundos); • Sinal amarelo (2 segundos); • Sinal Vermelho (6 segundos) Conceitos Básicos Atividade 2 Realizar um projeto de semáforo de um cruzamento. Avenida 1 • Sinal verde (8 segundos); • Sinal amarelo (2 segundos); • Sinal Vermelho (8 segundos) Avenida 2 • Sinal verde (6 segundos); • Sinal amarelo (2 segundos); • Sinal vermelho (10 segundos) Declaração de Variáveis Inteiras int “nome da variável” = valor inteiro Exemplo: As variáveis globais são declaradas antes do void setup() Esta função retorna o estado de uma entrada digital. É utilizada para verificar o estado de um botão, uma chave de fim de curso, etc... digitalRead(pino) • pino: número da porta digital do arduino; Entradas Digitais Função digitalRead() Lembre-se de configurar a porta do Arduino como entrada digital Entradas Digitais Função digitalRead() • A função digitalRead() deve ser atribuída a uma variável. Exemplo: Entradas Digitais Função if() else • O comando if() checa uma condição e executa os comandos programados caso a resposta seja verdadeira. • O comando else, executa os comandos programados caso a resposta seja falsa. Função if() else Eletrônica dos Botões EX: Botão -> Resistor de pull-up e pull-down Função digitalRead() Atividade Verificar o funcionamento do código Button presente nos exemplos: Atividade Entendendo a programação! O que está faltando no circuito eletrônico? Atividade Eletrônica Atividade Para evitar acidentes no ambiente de trabalho, uma regra de segurança em vários equipamentos industriais é obrigar que um usuário aperte dois botões, um com cada mão, para acionar uma máquina. É o caso da máquina de corte usada em fábricas de papel. Com a seguinte montagem podemos simular esta situação. O LED somente acende se os dois botões do circuito estiverem pressionados: Atividade – Resposta Lógica E Atividade – Resposta Outra Opção Comando E Atividade Faça mais uma modificação no código fonte do exercício 1 para que você possa acender o LED do pino 13 pressionando ou o botão 1 ou o botão 2. Ao deixar de pressionar, o LED se apaga. Atividade – Resposta Lógica OU Leitura Serial de uma Entrada Digital Aqui, veremos como monitorar uma entrada digital por meio da comunicação serial entre o Arduino e o computador através do cabo USB. Função para iniciar a comunicação serial: O valor de 9600 indica que esta comunicação serial terá 9600 bits de dados por segundo. Leitura Serial de uma Entrada Digital Função para escrever algo na porta serial: Para enviar uma variável pela serial, não se utiliza aspas. Para enviar um texto pela serial, deve-se utilizar aspas! Leitura Serial de uma Entrada Digital Função para escrever algo na porta serial: Escreve na serial e pula para próxima linha! Escreve na serial e mantem na mesma linha! Leitura Serial de uma Entrada Digital Exemplo “DigitalReadSerial” Leitura Serial de uma Entrada Digital Atividade Verificar o funcionamento do exemplo “DigitalReadSerial” disponível na IDE do arduino. Entradas Analógicas Função analogRead() Lê o valor de um pino analógico especificado. A placa Arduino Uno possui 6 conversores analógicos-digital de 10 bits. Isso significa que este irá mapear tensões entre 0 e 5 V para valores inteiros entre 0 e 1023. Exemplo: Entradas Analógicas Leitura Serial de uma Entrada Analógica Verificar o funcionamento do código AnalogReadSerial presente nos exemplos do IDE Arduino. Entradas Analógicas Leitura Serial de uma Tensão Verificar o funcionamento do código ReadAnalogVoltage presente nos exemplos do IDE Arduino. Entradas Analógicas Atividade Verificar o funcionamento do código AnalogInput presente nos exemplos do IDE Arduino. Entradas Analógicas AnalogInput: Entendendo o programa! Entradas Analógicas Atividade Circuito Eletrônico: Substituir o Potenciômetro por LDR. Saídas Analógicas (PWM – Pulse Width Modulation) PWM é uma técnica utilizada para controle de dispositivos variando a intensidade. Por exemplo,intensidade de giro de um motor, brilho de uma lâmpada. Através do PWM, pode-se, de forma digital, modular um sinal analógico. 0,5 V 2,5 V 4,5 V Saídas Analógicas (PWM – Pulse Width Modulation) Função analogWrite() Os sinais PWMs do arduino são controlados utilizando a função analogWrite() conforme abaixo: analogWrite(Pino, Valor) • Pino: Porta física onde se deseja aplicar o PWM. • Valor: Valores compreendidos entre 0 e 255. Exemplo: Interpolação Linear – Função map() Função map() A função map() é utilizada quando se deseja remapear um valor de um intervalo para outro. Por exemplo: Temos uma variável que varia entre 0 e 1023 mas temos que utiliza-la em uma função que aceita apenas 0 a 255. =map(valor, deMenor, deMaior, para enor, paraMaior) Exemplo: Valores variam entre 0 e 1023 Valores variam entre 0 e 255 Controlando a Intensidade de Brilho de um LED Atividade Desenvolver um programa que, através de um potenciômetro conectado à uma entrada analógica (função analogRead()) controle a intensidade de um LED conectado à uma saída PWM (Função analogWrite()) Controlando a Intensidade de Brilho de um LED Solução ServoMotor Um Servo motor CC é formado basicamente por um pequeno motor de corrente contínua, um potenciômetro de realimentação, uma caixa de engrenagens e um circuito eletrônico para fazer o seu acionamento. ServoMotor Ligação Os servos possuem 3 fios sendo o primeiro de GND, o segundo 5 V (alimentação) e o terceiro para o sinal. ServoMotor Acionamento do Servo Motor ServoMotor Para gerar o PWM com duty-cicle variando de 1 a 2ms com período de 20ms, existe a biblioteca Servo.h disponível da IDE do Arduino. Para a utilização da biblioteca, deve- se seguir as seguintes etapas: 1. Incluir a biblioteca; 2. Criar um objeto para controlar o servo; 3. No void setup(), deve-se indicar a porta que será gerado o sinal do servo; 4. Enviar uma posição para o servo. 1 2 3 4 ServoMotor Atividade Verificar o funcionamento do exemplo knob da IDE do Arduino. Display LCD – Liquid Crystal Display O display de LCD é uma peça importante em projetos em que você precisa visualizar a leitura de um sensor ou mesmo para transmitir uma informação para o usuário. Também pode ser utilizado quando há necessidade de parametrização do projeto. Assim é possível visualizar e interagir com o equipamento. Fácil interação com Arduino! Display LCD – Liquid Crystal Display Controle PinOut! Display LCD – Liquid Crystal Display Ligação com o Arduino Display LCD – Liquid Crystal Display Ligação com o Arduino Display LCD – Liquid Crystal Display Principais funções do Arduino para LDC! Indica como os pinos do LCD estão interligados no Arduino. Configura o modelo do display. Em nosso caso 16x2. Posiciona o cursor na linha e coluna indicada no comando. Escreve um dado no display. Se estiver entre aspas trata-se de um texto Escreve um dado no display. Se estiver entre aspas trata-se de um texto, caso contrário, trata-se de um valor. Display LCD – Liquid Crystal Display Primeiro programa “Hello SENAI” Incluindo a biblioteca LCD Criando as variáveis para definição dos pinos Definição dos pinos conectados ao LCD Inicializando o display Número de colunas Número de linhas Posicionando o cursor onde se deseja escrever Número de linhas Posicionando o cursor onde se deseja escrever Escrevendo um TEXTO Escrevendo um TEXTO Tempo de atraso Display LCD – Liquid Crystal Display Atividade Desenvolva um projeto em que ao pressionar um botão, uma indicação “Botao Ligado” será mostrada em um display LCD. Em quanto o botão estiver desligado a indicação será “Botao Desligado”. Display LCD – Liquid Crystal Display Atividade Desenvolva um projeto onde o valor de uma entrada analógica é mostrada em um display LCD. Display LCD – Liquid Crystal Display Atividade Desenvolva um projeto onde o valor de uma entrada analógica é mostrada em um display LCD. Porém agora deverá ser mostrada em volts. FIM