Baixe o app para aproveitar ainda mais
Prévia do material em texto
Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Capítulo 3 Sistemas de Controle 1º. Semestre / 2016 1 Baseados na Plataforma Arduino (parte 1) Prof. Evandro Luís Brandão Gomes Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino • Arduino é uma plataforma de prototipagem open-source (código aberto), baseada nos princípios de flexibilidade e facilidade de uso para projetos de hardware e software. 1º. Semestre / 2016 2 • Consiste de uma placa com microcontrolador da família ATmega, preparada para receber sinais de sensores e acionar atuadores. • Sua linguagem de programação é a Wiring (baseado em C/C++). Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) O projeto Arduino • Os Layouts, programas, bootloaders e IDE estão disponíveis para Download gratuitamente na internet(www.arduino.cc). 1º. Semestre / 2016 3 • Todo o hardware é aberto e os projetos estão disponíveis na internet; Desenvolvido por: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis, na Itália, em 2005 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Modelos de Arduino 1º. Semestre / 2016 4 Arduino Duemilanove Arduino UNO Arduino MEGA Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Tipos de Arduino 1º. Semestre / 2016 5 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Tipos de Arduino • Arduino é OPEN-SOURCE. O nome Arduino é marca registrada! • Similares: 1º. Semestre / 2016 6 Freeduino Seeduino Severino Brasuino Pinguino (PIC) Cortino – ARM Cortex M3 (32 bits) Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) A placa do Arduino UNO- Diagrama de Blocos Atmega328p 1º. Semestre / 2016 7 Regulador de Tensão Cristal (16Mhz) Gravador de Memória Flash Microcontrolador ATmega (com Bootloader) Fonte de Alimentação Conector USB Conectores (Portas de I/O) RESET ICSP Memória Flash Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) A placa do Arduino Mega 2560 - Diagrama de Blocos Atmega2560 1º. Semestre / 2016 8 Regulador de Tensão Cristal (16Mhz) Gravador de Memória Flash Microcontrolador ATmega (com Bootloader) Fonte de Alimentação Conector USB Conectores (Portas de I/O) RESET ICSP Memória Flash Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) A placa do Arduino Mega 2560 - Diagrama de Blocos 1º. Semestre / 2016 9 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Shields do Arduino • Os “Arduinos Shields” são placas que podem ser conectadas diretamente ao Arduino aumentando sua capacidade! • Pode-se utilizar mais de um Shield simultaneamente. 1º. Semestre / 2016 10 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Shields e Módulos disponíveis (no Inatel) Relé com 2 canais Sensor de Temperatura 1º. Semestre / 2016 11 Sensor Ultrassônico Ponte H Temperatura e Umidade Modulo RX/TX 433MHz Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino Mega-2560 (usado no Laboratório) 1º. Semestre / 2016 12 54 pinos de I/O DIGITAIS – 14 destes podem ser utilizados para PWM. 16 pinos de entradas ANALÓGICAS. 4 “portas” de Comunicação Serial Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software • Partes básicas do programa Arduino na linguagem Wiring. void setup( ) { .... setup() � é executado uma só vez assim que a placa for ligada é nesta função que se define quais pinos serão entrada e saídas e outros parâmetros de inicialização. 1º. Semestre / 2016 13 .... } void loop( ) { .... } inicialização. loop() � terá o código de execução em loop infinito. Pode-se criar outras funções diferentes assim como em C/C++. Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software • Tipos de Variáveis: boolean � pode assumir true ou false. Ou também HIGH e LOW. byte � Valor de 0 a 255 int � Números inteiros (de -32768 a 32767). 1º. Semestre / 2016 14 int � Números inteiros (de -32768 a 32767). unsigned int �Números inteiros sem sinal (de 0 a 65535). long int � Números inteiros longos (de -2147483648 a 2147483647). unsigned long� Números inteiros longos sem sinal (de 0 a 4294967295). float � Números fracionários (-3.4028235 E+38 a 3.4028235 E+38). char � Um caractere (8 bits, pode assumir valores de 0 a 255) string � conjunto de caracteres. Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software 1º. Semestre / 2016 15 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais • 54 pinos de entrada e saída digitais • Não colocar mais 5V em qualquer pino de entrada/saída do Arduino. • Os níveis digitais do Arduino são: 1º. Semestre / 2016 16 – Nível Lógico 0 (LOW) = 0~2V (na entrada), 0V (na saída) – Nível Lógico 1 (HIGH) = 3~5V(na entrada), 5V (na saída) Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais • Funções: pinMode(porta, modo); � configura uma porta digital para entrada ou saída. Deve ser feito dentro da setup() porta = número da porta modo = INPUT ou OUTPUT 1º. Semestre / 2016 17 modo = INPUT ou OUTPUT digitalWrite(porta, valor); � envia 0 ou 1 para a porta de saída digital. porta = número da porta valor = 0 ou 1 ou HIGH ou LOW valor = digitalRead(porta); � lê a porta de entrada e retorna um 0 ou 1. porta = número da porta valor = valor lido da porta digital (0 ou 1) Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais Exemplo 1 - Saída: Pisca o LED na porta 3 a cada 1 segundo 1º. Semestre / 2016 18 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais Exercício 1: Dado o circuito abaixo, faça um programa para piscar todos os LEDs em uma frequência de 1Hz (500ms acesos e 500ms apagados) 1º. Semestre / 2016 19 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais Exercício 2: Dado o circuito, faça um programa para: Cada LED ficar acesso durante 1s. (use o sentido do LED D1 para 1º. Semestre / 2016 20 1s. (use o sentido do LED D1 para o LED D4) Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Exercício proposto para realização em LABORATÓRIO: a) Monte o circuito do Exercício 2, escreva o programa e faça os testes necessários para verificação do correto funcionamento. 1º. Semestre / 2016 21 funcionamento. b) Com as orientações do monitor/professor de laboratório, faça as alterações solicitadas por ele, faça os testes necessários e apresente os resultados. Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais O ARDUINO possui Resistores de Pull-Up nos pinos Digitais: • Quando usados como saída, ficam desligados. • Quando usados como entrada, o programador pode configurar se os 1º. Semestre / 2016 22 • Quando usados como entrada, o programador pode configurar se os resistores de Pull-Up vão ser ligados internamente ou não. • Exemplo: void setup() { pinMode(5,INPUT); // não ligao resistor de Pull-ip na porta 5 pinMode(7,INPUT_PULLUP); // liga o resistor de Pull-Up na porta 7 ... } Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais Exemplo 2 - Entrada: Push-Buttom aberto � LED apagado Push-Buttom pressionado � LED aceso 1º. Semestre / 2016 23 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais Exercício-3: Dado o circuito da figura, elabore um programa que alterne o estado do LED se o Botão ficar pressionado. Ao soltar o Botão o Led fica apagado. Utilize um tempo de 2 seg. para alternar o estado do LED (2 seg. aceso e 2 seg. apagado). Questões para analisar: 1º. Semestre / 2016 24 Questões para analisar: - Qual o tempo de resposta da leitura do Botão (analise o pior caso)? - Como resolver isso? Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais Exercício Proposto-1: Uma empresa possui 3 sensores (A, B e C) instalados em locais importantes.Faça o programa de controle para as seguintes situações: -Enquanto o circuito estiver ligado o LED L1 deve permanecer ligado 1º. Semestre / 2016 25 - Quando um dos sensores for ativado, apenas LED L2 deve acender. - Quando dois sensores forem ativados apenas LED L3 deve acender - Quando todos os sensores ativarem, o LED L4 deve ficar piscando (500ms) Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Exercício proposto para realização em LABORATÓRIO: a) Monte o circuito do Exercício Proposto-1, escreva o programa e faça os testes necessários para verificação do correto funcionamento. 1º. Semestre / 2016 26 do correto funcionamento. b) Com as orientações do monitor/professor de laboratório, faça as alterações solicitadas por ele, faça os testes necessários e apresente os resultados. Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais Exercício 4 – Um simples Sistema de Irrigação: Um sistema de irrigação automática de terrenos deve ser projetado para ter os seguintes requisitos:: - Só entrar em operação se a chave (Lig/Des) estiver acionada. Quando em 1º. Semestre / 2016 27 - Só entrar em operação se a chave (Lig/Des) estiver acionada. Quando em operação liga uma sinalização “EM OPERAÇÃO”. - Monitorar o estado do terreno, através de um sensor de umidade que indica o estado do terreno (1=úmido ou 0=seco); - Se o sensor indicar “Terreno Seco”, uma Bomba de sucção de água deve ligar até que o sensor passe a indicar “ Terreno Úmido”. Quando a Bomba estiver ligada, acionar uma sinalização “BOMBA” e quando a Bomba for desligada, esta sinalização deve ser desligada também. Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais Exercício 4 – Um simples Sistema de Irrigação: Diagrama de blocos do Sistema: 1º. Semestre / 2016 28 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Arduino – Software� Portas Digitais Exercício 4 – Um simples Sistema de Irrigação: Pede-se: 1. Projetar o circuito de controle deste Sistema (mostrar o diagrama elétrico esquemático); 1º. Semestre / 2016 29 esquemático); 2. Projetar o software de controle (mostrar o código escrito para o Sistema); 3. Implementar e testar o funcionamento do Sistema; Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Exercício proposto para realização em LABORATÓRIO: a) Monte o circuito do Exercício 4, escreva o programa e faça os testes necessários para verificação do correto funcionamento. 1º. Semestre / 2016 30 funcionamento. b) Com as orientações do monitor/professor de laboratório, faça as alterações solicitadas por ele, faça os testes necessários e apresente os resultados. Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) ANEXO Algumas funções da Biblioteca 1º. Semestre / 2016 31 Algumas funções da Biblioteca do Arduino (Wiring) http://arduino.cc/en/Reference/HomePage Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring delayMicroseconds() Descrição: faz uma pausa no programa por “n” microsegundos. O valor máximo aceito como parâmetro é 16.383 1º. Semestre / 2016 32 como parâmetro é 16.383 Sintaxe: delayMicroseconds(us) Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring micros() Descrição: Retorna o tempo em micro-segundos desde que o programa começou a ser executado no ARDUINO. 1º. Semestre / 2016 33 executado no ARDUINO. Este valor volta a zero (overflow) em aproximadamente 70 minutos. Sintaxe: micros() Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring random() Descrição: Retorna um número pseudo-randômico. 1º. Semestre / 2016 34 Sintaxe: random(max) ou random(min, max) Onde, max � valor máximo gerado min � valor mínimo gerado o valor será gerado entre min e max-1 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring randomSeed(semente) Descrição: Inicializa o gerador de números pseudo-randômicos. 1º. Semestre / 2016 35 Sintaxe: randomSeed(semente) Onde, semente � deve ser um valor inteiro. Este valor irá inicializar a semente de geração dos números pseudo-randômicos gerados pela função random() Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring map(valor, deLow, deHigh, paraLow, paraHigh) Descrição: Faz o mapeamento de um valor entre uma faixa para outra faixa de valores. 1º. Semestre / 2016 36 Sintaxe: map(valor, deLow, deHigh, paraLow, paraHigh) Onde, valor � valor a ser mapeado deLow e deHigh � limites da 1ª. Faixa de valores paraLow, paraHigh � limite da 2ª. Faixa de valores a ser convertido Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring map(valor, deLow, deHigh, paraLow, paraHigh) (continuação) Exemplo : 1º. Semestre / 2016 37 Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring constrain(x, a, b) Descrição: Retorna o valor de x se ele está entre a e b. 1º. Semestre / 2016 38 Sintaxe: constrain(x, a, b) Irá retornar: x � se x estiver entre a e b a � se x for menor que a b � se x for maior que b Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring pulseIn() Descrição: Retorna a largura de um pulso de entrada em micro-segundos. 1º. Semestre / 2016 39 Sintaxe: pulseIn(pino, valor) ou pulseIn(pino, valor, timeout) Onde, pino � número do pino definido como porta de entrada valor � tipo de pulso a ser lido (HIGH ou LOW) timeout (opcional) � tempo para espera máxima do início do pulso Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring pulseIn() (continuação) Exemplo: 1º. Semestre / 2016 40 ... Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring bitSet() Descrição: Coloca o valorde um bit específico em 1 (SET). 1º. Semestre / 2016 41 Sintaxe: bitSet(x, n) Onde, x � variável n � número do bit a ser setado na variável x. Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring bitClear() Descrição: Coloca o valor de um bit específico em 0 (CLEAR). 1º. Semestre / 2016 42 Sintaxe: bitClear(x,n) Onde, x � variável n � número do bit a ser resetado na variável x. Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring bitRead() Descrição: Lê o valor de um bit específico e retorna 0 ou 1. 1º. Semestre / 2016 43 Sintaxe: bitRead(x,n) Onde, x � variável n � número do bit a ser lido na variável x. Capítulo 3 Sistemas de Controle Baseados na Plataforma Arduino (parte 1) Outras Funções da Biblioteca da Linguagem Wiring bitWrite() Descrição: Escreve o valor de um bit específico como 0 ou 1 (SET ou CLEAR). 1º. Semestre / 2016 44 Sintaxe: bitWrite(x,n, b) Onde, x � variável n � número do bit a ser setado na variável x. b � o valor a ser escrito no bit n na variável x (0 ou 1)
Compartilhar