Arduino. Configuração de HW/SW

Slides:



Advertisements
Apresentações semelhantes
Aula 5 – Anatomia da Placa-Mãe
Advertisements

Meu primeiro programa em ARDUINO
Eletrônica Básica Aula 9
Iniciação ao Arduino uno
e suas funcionalidades
Escolha da Placa. Porta Serial / COM Port Partes do Código.
Workshop de automação de mini helicópteros
Exemplos de programação IDE
Estrutura do Software no Sketch Window
Aula 03: Efeito de iluminação sequencial com LED e Efeito interativo de iluminação com LED
Aula 04: Aprendendo sobre o PWM do arduíno e Ponte H
Aula 05: Sensores do robô e Bibliotecas. Aula 05: Sensores do robô  O que vamos aprender? 1.Funcionamento e aplicações dos sensores 2.Utilidade das Bibliotecas.
Clique para editar o título Arduino seu primeiro microcontrolador PMR
Clique para editar o título Sensores PMR
Bancada Modular Didática Para Estudos de Controladores Lógicos Programáveis DLB CLP642 Apresentação dos Módulos Preparado por: Eng. Arsonval Fleury.
Simulador de Processos Industriais
Como funciona o processador Nomes: Fernando, Maurício, William Turma: 1J-1PC1 Disciplina: Fundamentos da Computação Curso: Técnico em Programação de Computadores.
Unidade 2 Conceitos Gerais Hardware. HARDWARE Unidades de Entrada Unidades de Saída Memória Principal Memória Auxiliar CPU Sistema Central Periféricos.
ROBÔ SEGUIDOR DE LINHA. PROGRAMANDO Para definir o que queremos que um robô faça devemos fazer a programação deste robô.
Ferramentas de Diagnóstico de Máquinas IMFDM Prof. Dr. Cesar da Costa 4.a Aula: Prática com Software LabVIEW.
CARACTERISTICAS DO CLP - Fácil diagnóstico de funcionamento ainda em fase de projeto do sistema e/ou reparos que venham a ocorrer.
UNIVERSIDADE ESTADUAL DO RIO GRANDE DO SUL UNIDADE UNIVERSITÁRIA EM PORTO ALEGRE CURSO DE GRADUAÇÃO EM ENGENHARIA DE ENERGIA Autor: Thiago da Silva Girardi.
COMUNICAÇÃO WIFI ESP /Cortex-M0/ AppInventor
Placa Mãe e seus dispositivos
Atividade 4 - entrada e saída pelo Arduino
Manutenção de Periféricos II
Laboratório de Lógica Configurável T8LLC
Atividades 3: Configuração de HW/SW
INSTRUMENTAÇÃO E CONTROLE
Curso Básico e Arduino Elaboradores: Gilberto Lopes Filho Pedro Santos
PSI3441 – Arquitetura de Sistemas Embarcados
//. retangulo. c - exibe um retangulo vermelho no vídeo
Introdução à Computação
Caracterização do equipamento
NEANDERWin - Simulador
Lê temperatura ARDUINO + ANDROID + BLUETOOTH
Arduino seu primeiro microcontrolador
Sensores PMR
Bluetooth AppInventor
Guilherme Lopes da Silva
Serial no arduino recepção no bluetooth
Integrantes (até dois) < > Data
Hardware É a parte física de um sistema de computação, ou seja, todos os elementos materiais que o constituí (circuitos eletrônicos, dispositivos mecânicos,
Sistemas de entrada e saída. Aplicações
Interface de comunicação
1 Introdução aos COMPUTADORES Profª Alda Vagarinho.
Arduino. Entrada e saída
Atividades 1: Alimentação
Aplicações de Flip-Flops Registradores
Controle e monitoramento de nível utilizando o Arduino Uno
Aula 01: Introdução, LED piscante e Sinalizador de código Morse;
E suas funcionalidades. Hardware livre Software livre Diferentes modelos Simples e confiável Robusto o suficiente para a maioria das atividades de robótica.
Instalação configuração de HW/SW-Exp.3
Apresentação de Produtos rev data Dezembro 2005.
Aula 02: S.O.S e Semáforo Interativo
Microprocessadores e Microcontroladores
e suas funcionalidades
Circuitos Sequenciais
Circuitos Sequenciais
Arquitetura de Computadores
Trabalho Prático de Redes Industriais
Instituto Educacional Cecília Meireles Prof.º Daniel Augusto de Oliveira CURSO TÉCNICO EM SEGURANÇA DO TRABALHO INFORMÁTICA APLICADA.
Grupo de Engenharia da Computação Departamento de Informática - UFPE
Germano Maioli Penello
Germano Maioli Penello
Hardware – Montagem e Manutenção Educador Prof. Alexsand Farias.
Exemplos de programação IDE
CLP – Controladores Lógicos Programáveis Iniciou-se em 1968, pela General Motors. Foi uma alternativa para substituir as lógicas á relé.
UNIDADE 11: CONTROL RC-SERVOMOTOR
Introdução a Engenharia Elétrica
Transcrição da apresentação:

Arduino. Configuração de HW/SW Ambiente de desenvolvimento Recursos HW/SW Linguagem de programação Funções principais (setup e loop) Recursos disponíveis: “Ports”. Entrada/saída analógica e digital; Alimentação; Monitor serial; Plotter serial. Tarefas Programação de intervalos de tempo; Saída digital; Entrada analógica; apresentação de dados.

Microcomputador X microcontrolador Microcomputador. CPU + unidades de memória e armazenamento secundário + interfaces e periféricos. Microcontrolador. Um único chip incorpora CPU, memórias, unidades de apoio, comunicação e dispositivos de entrada e saída. Recursos do Arduino Microcontrolador ARM Memórias: RAM, EPROM, flash. Interfaces serial (USB); E/S analógica e digital; Apoio: Temporizadores, Contadores (clock), etc.

Características técnicas CPU: ARM (Advanced Risc Machine); Linguagem de programação: Dialeto C; Memória de Programa (Flash): 32KB 14 pinos para E/S digital; 6 “ports” para entrada analógica. Conversão A/D; Pinos para alimentação 5 volts e 3,3 volts; Software: Ambiente de desenvolvimento integrado de HW/SW; Bootloader (CARREGAMENTO DE PROGRAMAS); Interfaces com o SO; USB. Comunicação e carga de programas.

IDE Arduino (Ambiente de Desenvolvimento Integrado) Hardware Integrated Development Environment. (Ambiente de Desenvolvimento Integrado) Hardware Placa com microprocessador e circuitos de apoio Recursos para conexão serial (USB); Pinos de alimentação: 5/3,3volts. 40 mA de corrente elétrica. Placas de apoio (Shields) para extensão de funções (rede, WIFI,..). Software Dialeto da linguagem C. Domínio público (open source) Bibliotecas de apoio Programas exemplo

IDE Arduino: Recursos de Programação Linhas de comentários: Pinos para entrada e saída de dados analógicos e digitais. Instruções de entrada e saída. Funções para programação de intervalos de tempo Funções para comunicação serial Programas exemplo.

Interface para programação

Programando intervalo de tempo // Pino 13 tem um LED. Variável led identifica o pino int led = 13; /*Função setup. Configuração do HW. Função pinMode inicializa o pino 13 como saída digital. */ void setup() { pinMode(led, OUTPUT); } // Função loop. Executada em loop infinito. void loop() { digitalWrite(led, HIGH); // Liga o pino 13 (HIGH) delay(1000); // Pára a CPU por um segundo digitalWrite(led, LOW); // Desliga o LED (LOW) } // Retorna ao início

Operação do Arduino. Programa BLINK Ative o programa Arduino.exe, conforme orientações em sala. Carregue o programa Blink File Examples  Basic  Blink Compile o programa: Verify (barra de opções); Configuração da porta: Acesse a aba Ferramentas porta. A comunicação deve ser pela porta virtual para o Arduino Configuração do dispositivo: Placa configurada para Arduino UNO. Acesse a aba Ferramentas  placa. Transfira o programa Blink para a placa ARDUINO. *O programa será transferido se o Arduino DEVE estiver se comunicando com o PC via cabo USB.

Ajuda. Referencia

Compilação (Verify)

Exercício Ligar o pino 13 por 300 ms e desligar por 100ms. Deixar em loop. ______________________________________ Ligar o pino 10 por dez segundos e desligar. Sem loop.

Resumo setup: Opera apenas no momento inicial do programa. loop: Opera em repetição. pinMode (pino, modo_operaçao): Configura pino como entrada (IN) ou saída (OUT) digitalWrite (pino, HIGH/LOW): Coloca pino em nível alto (HIGH) ou em nível baixo(LOW) Delay (milissegundos): Para o processamento em intervalos de milissegundos).

// Pino 11 está configurado como saída. pinMode(10,INPUT); Exemplos pinMode(pino, modo). Parâmetros pino: (0 a 13); modo: OUTPUT/INPUT Exemplos: pinMode(11,OUTPUT); // Pino 11 está configurado como saída. pinMode(10,INPUT); // Pino 10 está configurado como entrada.

Saída de dados digital digitalWrite(pino, valor); valor: LOW/ HIGH (0/1) EXEMPLO: digitalWrite(13, HIGH) Exercício. Pograma para deixar o pino 10 sempre ligado (em nível alto).

Testes do programa blink Altere o programa blink para piscar com os seguintes intervalos: 10 segundos 100 milissegundos: 10 milissegundos ligado e 2 segundos desligados; Qual o intervalo de tempo que você consegue perceber o LED piscando.

Programa: Blinkwithoutdelay Coloque em operação o arquivo blinkwithoutdelay Examples  digital  BlinkWithoutDelay. Altere a função para operar 2 segundos em nível HIGH e 2 segundos em nível LOW; Qual a diferença de operação dos programas Blink e BlinkWwithoutDelay.

BlinkWithoutDelay int ledState = LOW; long previousMillis = 0; // ledState store last time LED was updated long interval = 2000; // interval at which to blink (milliseconds). void setup() { pinMode(13, OUTPUT); } void loop() { /*check to see if it's time to blink the LED; that is, if the difference between the current time and last time you blinked the LED is bigger than the interval at which you want to blink the LED. */ unsigned long currentMillis = millis(); if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH;} else ledState = LOW; // set the LED with the ledState of the variable: digitalWrite(13, ledState); }

BlinkWithoutDelay Vide reference doArduino *unsigned long currentMillis(32 bits) O valor máximo do tipo de variável unsigned long é: 2^32

Reference: unção mills()f millis() Description Returns the number of milliseconds since the Arduino board began running the current program. This number will overflow (go back to zero), after approximately 50 days.

Monitor serial. Saída de dados unsigned long time; void setup(){ Serial.begin(9600); } void loop(){ Serial.print("Time: "); time = millis(); //prints time since program started Serial.println(time); // wait a second so as not to send massive amounts of data delay(1000); }

Monitor Serial

Monitor serial para saída de dados // Comunicação via USB e o Monitor serial. // Ícone no canto superior esquerdo int n = 1; void setup ( ) { Serial.begin(9600); } // Inicializa a comunicação serial com 9600 bauds void loop() { //saída pela interface serial. Recebe no monitor serial Serial.print(n); n=n+1; Serial.println(": Alo Mundo!"); delay(2000); }

Funções de comunicação Serial.begin(9600). “Inicializa” comunicação pela saída serial (USB) Serial.print(n). Envia valor de n pela saída serial. Serial.println(": Alo Mundo!"). Imprime string e acrescenta nova linha.

Um “contador de tempo” simplificado Contador para segundos e minutos. Uso das funções millis() e delay(intervalo)

Solução e críticas unsigned long time; unsigned long segundo; unsigned long minuto; void setup(){ Serial.begin(9600); } void loop(){ time = millis()/1000; segundo = time%60; minuto = time/60; //prints time since program started Serial.print(" Minuto: "); Serial.print(minuto); Serial.print(" Segundo: "); Serial.println(segundo); // wait a second so as not to send massive amounts of data delay(1000); }

Teste da Comunicação Serial // Comunicação via USB. Monitor serial int n = 1; void setup ( ) { Serial.begin(9600); } // Comunicação serial com 9600 bauds (b/s) void loop() { //envia pela porta serial. Recebe pelo monitor serial Serial.print(n); n=n+1; Serial.println(": Alo Mundo!"); delay(200); } /*O que acontece se for alterado o valor 9600 bauds? Teste outros valores para transferência de dados.*/

Função Serial.begin Vide reference Sets the data rate in bits per second (baud) for serial data transmission.

Resistor série para operação do LED (pino 13). LED (Light Emissor Diode). Tensão de operação depende da cor 1 a 4 volts. Corrente de operação: 5 a 20 miliAmpères. * A corrente define a intensidade do brilho. Cor  Tensão de operação; Corrente  Intensidade do brilho. Resistor em série com LED limita a corrente e o brilho.

Resistor do pino 13 (built-in) LED operando com 2,5 V e corrente de 10 miliAmpéres (0,01mA). *LED alimentado pelo pino 13 (5) volts Resposta: R= (5-2,5)/0,010=250 OHMs. *Esta montagem é nativa na placa Arduino.

Arduino – entrada de dados digitais /* leitura digital no pino2. Apresentação no monitor serial */ int pushButton = 2; // pino 2 DEVE estar ligado a umm “pushbutton” void setup() { Serial.begin(9600); pinMode(pushButton, INPUT); } void loop() {int buttonState = digitalRead(pushButton); // leitura no pino digital. Valor da leitura digital: 0 ou 1. Serial.println(buttonState); // print the state of the button: delay(1000); } // Qual o valor obtido? //*O pino 2 está “flutuando”

Conversão Analógico/Digital void setup() { Serial.begin(9600); } void loop() { int sensorValue = analogRead(A0); float voltage = sensorValue * (5.0 / 1023.0); Serial.println(sensorValue); // mostra o valor lido no sensor Serial.print("\t"); Serial.println(voltage); // mostra o valor convertido }

Conversão Analógico/Digital /* O conversor A/D na entrada analógica fornece valores inteiros de 0 – 1023 obtidos de de voltagens que variam de 0 - 5V. ?*/ /*O conversor A/D no Arduino é de n=10 bits. A entrada analógica recebe valores de 0 a 5 volts e converte em inteiros de 0 a 1023 (2^10 = 1024). */ // float voltage devolve o valor lido na escala real Importante. A função digitalRead(pushButton) lê o botão definido por pushButton. Valor da LEITURA: 0 ou 1 A função analogRead(A0) faz a leitura de dados analógicos, covertendo-os em valores inteiros.

Sistemas de entrada e saída. Aplicações em Controle de processos Recebimento e tratamento de sinais gerados por transdutores; Recepção/tratamento/transmissão de dados; Conexão entre sistemas. Exemplo. Sistema com entrada via sensores no controle de saída. Arduino Drive Saída Sensores

Sistemas de entrada e saída. Conceitos Transdutor: converte formas de energia diferentes; Grandeza analógica: Recebida pelo Arduino. Conversão A/D; Fornece: Dados processados para controle; Energia para acionamento de dispositivos externos: Drive de potencia; Controle de dispositivos via programa.

Princípio de funcionamento Divisor de Tensão. Lei de OHM. V = R * I Divisor de tensão: A energia se distribui proporcionalmente ao valor da resistencia 0,5 mA 0,25mA 2,5V 1,25V V1=R1.V/(R1+R2) V2=R2.V/(R1+R2) Explicar divisor de Tensão 3,75V 2,5V A Soma das tensões é igual a tensão no circuito série

CONCEITO Conversão DIGITAL Valor analógico 0: 0V 511........................2,5V. 1023 5V Valores proporcionais Valores contínuos Explicar divisor de corrente

CONCEITO 0,1V:_(=0,1*1023/5=204 2,0V:________ 3,0V:________ Conversão A/D.Sendo o valor analógico 0 Volts correspondente ao valor inteiro 0, e o valor analógico 5 Volts correspondente ao valor inteiro 1023, calcule o valor inteiro correspondente aos seguintes valores analógicos: 0,1V:_(=0,1*1023/5=204 2,0V:________ 3,0V:________ 3,3V:________ 4,5V: ________ Explicar divisor de corrente

Leitura de sinal analógico Leitura de sinais de sensores. Um sinal analógico é produzido pelo potenciômetro de 10K. O potenciômetro é alimentado por 5Volts fornecidos pelos pinos 5V e GND. O fio central do potenciômetro alimenta a entrada A/D (pino A0). O movimento do cursor do potenciômetro produz valores analógicos de 0 a 5Volts.

Conversão A/D Nem sempre a curva é linear: Uso de regressão linear para ajuste de curva. B

void setup() { Serial.begin(9600); } void loop() {// leitura analógica no pino A0 int sensorValue = analogRead(A0); /* Converte a leitura analógica (0 - 1023) para voltagem (0 - 5V)*/ float voltage = sensorValue * (5.0 / 1023.0); serial.print(“temperature = “); serial.println(voltage); delay(1000); } Examples>Basics>ReadAnalogVoltage

Notas Um conversor A/D recebe dados em formato analógico e os converte em valores inteiros em uma faixa de valores dependentes da precisão. A variável int sensorValue = analogRead(A0), recebe o valor analógico lido no pino A0 convertido para valores inteiros.

O integrado LM35 Funcionamento do sensor LM35. Pinagem. O sensor deve receber alimentação nos pinos GND e +V. O pino Vout devolve uma voltagem proporcional à temperatura.

Medida de temperatura via LM35 Conecte o sensor de temperatura ao Arduino. O sensor está fixado no shield Hacktronic. Teste o programa variando o potenciometro no shield. Ajuste a entrada analógica para A4. Este é o pino que está conectado o LM35. Ajuste o programa anterior para a nova escala para medida de 0 a 100 graus Celsius. float voltage = sensorValue * (500.0 / 1023.0);

Medida de temperatura via LM35 3. Observe saída do plotter serial. Ferramentas plotter serial Coloque o dedo levemente sobre o LM35. Complete o programa para acender o LED no pino 13 quando a temperatura atingir 35o.