ARDUINO BÁSICO Lição I

Documentos relacionados
Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Estruturas de Repetição

Um Módulo de Desenvolvimento para o ARDUINO

Controle de Fluxo Comandos de repetição: while e do-while

INTERFACE PARALELA. Área: Eletrônica Nível de conhecimento necessário: básico. Autor:

Cerne Tecnologia e Treinamento. suporte@cerne-tec.com.br

Programação Básica em Arduino Aula 7

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Programação em Linguagem C

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

Mundo Arduino: Vamos começar a programar?

Prof. Adilson Gonzaga. Interface com Displays

Capítulo 5: Repetições

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS.

RECEPTOR Módulo 5 Zonas

MREditor Editor de Impressos

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

SORTEADOR ALEATÓRIO SAP - 59 / MP

Interface com Displays de 7 Segmentos. Interface com Displays

Manual do usuário - IPD Cabine v2.0. Frente. Verso. IPD de Cabine v2.0 Manual do usuário. Copyright VW Soluções

TECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS

Gerenciamento de dispositivos móveis

Usando o painel do operador

Histórico e Evolução da Computação

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Arduino

GUIA DE INSTALAÇÃO MULTIBIO 700

VULCAN. Dupla Sirene Piezoelétrica Blindada e Auto-Alimentada Com Sinalização Luminosa. Manual de Instalação e Operação Rev. 01

Formatar parágrafos no Word 2007/2010

TUTORIAL - COMO SUBMETER ARTIGOS

Fotocélulas Speed Test - Cefise

Microsoft Excel INTRODUÇÃO PARTE 1 SUMÁRIO

1 de 8. entrada USB. 1 MENSAGENS

Central de Alarme V2/V2D

ROBÓTICA 1 INTRODUÇÃO A PROGRAMAÇÃO NO ARDUINO

Guia de Referência Rápida do Telefone do 9611 IP Office

Manual Técnico Arduino Supervisório 64

Os conceitos aprendidos são fundamentais, essenciais para escrever um programa macro. Mas o que é um programa macro?

MC Teste de Mesa e Comandos Repetitivos

Manual Escrituração Fiscal Digital

O QUE É O PICTURETEL 550

Central de Alarme Particionada AP4/AP4D

Manual do Usuário. Quiz Online

Oficina de Introdução ao Arduino

MATÉRIA TÉCNICA APTTA BRASIL

INTEGRAÇÃO JAVA COM ARDUINO

Aparelhos de Laboratório de Electrónica

Objetivo: Levantamento de pontos da curva temporizada

Segue uma seqüência de Perguntas e Respostas mais Freqüentes sobre Centrais SP e E55 (FAQ).

PAINEL DE ALARME MONITORÁVEL ACTIVE CENTER

Introdução. O que é o Arduino?

Supéria 4000 D8 GSM Guia do Usuário

- Tarefas Práticas de Programação usando Arduino - Imagem do Robô com Legendas

Teste de Funções por Cobertura do Grafo de Fluxo de Controle

Apresentação do Power Point; Exercícios.

Open Hardware & Arduino

ACD Loteca Chaves e Filtro PRO 1.0 Dicas

Exercícios de Fixação Aulas 05 e 06

Oganização e Arquitetura de Computadores

Assina S_Line Manual de Uso

OpenPDV: Sistema aberto para gerenciamento de restaurantes

Data Sheet FBEE Kit V05

Direto. ao Ponto. Comunicação Inverter Protocol entre PLC FX e Inversor Série 700 N o. DAP-PLCFX-05. Rev. A

CRONÔMETRO DIGITAL PROJETO

FLIP FLOPS. EXPERIMENTS MANUAL Manual de Experimentos Manual de Experimentos M-1113A

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

BIZAGI PROCESS MODELER - TUTORIAL INSTALAÇÃO E PRIMEIRO ACESSO

Estrutura de repetição do/while

Guia de instalação. Página 1 de 14

ACD Lotogol Chaves e Filtro PRO 1.0 Dicas

INF1005: Programação I. Algoritmos e Pseudocódigo

Introdução à Ciência da Informação

MODBUS COM ARDUINO.

Admistração de Redes de Computadores (ARC)

Programação do Arduino. Parte 1. IDE Wiring

Introdução. Uma das principais dúvidas de quem está iniciando no mundo do desenvolvimento de jogos digitais é quais softwares utilizar.

Capítulo VI Circuitos Aritméticos

- Trabalho Prático de Algoritmos e Programação usando Robô Arduino -

Comandos de Desvio 1

Sistema de Cadastro de Pessoa Jurídica

Tutorial 3 Básico do VBA do Excel

O que é Microsoft Excel? Microsoft Excel. Inicialização do Excel. Ambiente de trabalho

Olá! Você verá a seguir um importante treinamento que vai facilitar suas atividades diárias!

Nota de Aplicação. Migração Altivar 58(F) para Altivar 71 com rede Profibus. Suporte Técnico Brasil. Versão: 1.0

Parte 05 - Técnicas de programação (mapas de Veitch-Karnaugh)

Programação Orientada a Objetos. Professor Leonardo Cabral - Larback

1 Acesso ao Módulo de Agendamento do Portal de Serviços do Inmetro nos Estados

ESTUDO DE UM CIRCUITO RC COMO FILTRO

Painel Gráfico No-Break Conception Multi Ativo Innovation

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

TUTORIAL DE ATUALIZAÇÃO PARA

O QUE É O CALC PLANILHAS ELETRÔNICAS O Calc é um programa que trabalha com planilhas.

Switch switch switch switch switch variável_inteira valor1 valor2 switch variável_inteira case case break switch case default default switch switch

CENTRO TECNOLÓGICO ESTADUAL PAROBÉ CURSO DE ELETRÔNICA

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

LINGUAGEM JAVA - RESUMO

Arduino - Primeiros Passos

Transcrição:

ARDUINO BÁSICO Lição I Frederico José Dias Möller 28/01/14 Frederico Möller 1

SUMÁRIO Introdução O Mínimo Plataforma de que? Plataforma de prototipagem Para começar: blink Hardware Vantagens e desvantagens Software Definição Arduino.cc Arduino IDE Setup Loop A função digitalwrite() Configurando o bicho A função delay() 28/01/14 Frederico Möller 2

SUMÁRIO Um pouco de programação Variáveis Hardware Software Exercício 2 Laços Condicionais Exercício 1 Lendo... Exemplo: Alterar led Revisão Leitura complementar 28/01/14 Frederico Möller 3

INTRODUÇÃO O Arduino é uma plataforma de prototipagem eletrônica italiana. É conhecida por seu fácil uso, podendo ser usada até por leigos. Tem preço relativamente accessível, bom suporte online e uma boa configuração de hardware. 28/01/14 Frederico Möller 4

PLATAFORMA DE QUE??? O Atmel é um microcontrolador. Ele pode ser ligado a sensores, atuadores, módulos de RF... Ele também pode ser programado para agir dentro de uma rotina, reagir a sinais de sensores... 28/01/14 Frederico Möller 5

PLATAFORMA DE QUE? No entanto, é preciso montar um circuito de alimentação para manter o mesmo em operação. Para programá-lo, é necessário usar um módulo programador. É necessário criar extensões de seus pinos, para poder ligar sua saídas à periféricos. 28/01/14 Frederico Möller 6

PLATAFORMA DE PROTOTIPAGEM Quando reunimos todos esses elementos em uma só placa, temos a plataforma de prototipagem eletrônica. O Arduino, não é um microcontrolador, o Arduino é uma PPE. 28/01/14 Frederico Möller 7

VANTAGENS E DESVANTAGENS Acessível Fácil programação Grande variedade de módulos disponíveis no mercado Muitos tutoriais na internet Limitação de funções em nome da facilidade de programação Não aproveita totalmente a capacidade de seu hardware 28/01/14 Frederico Möller 8

Arduino.cc A página oficial do arduino é http://arduino.cc/ Podemos encontrar lá produtos, tutoriais, um fórum de discussões... Lá também podemos encontrar a IDE do arduino e seus drivers. 28/01/14 Frederico Möller 9

Arduino IDE É o ambiente de programação do arduino Vem com exemplos embutidos É leve e gratuita 28/01/14 Frederico Möller 10

Configurando o bicho Uma vez instalada a IDE e os drivers FTDI é necessário configurar a mesma para o Arduíno em uso. Fazemos isso no menu Tools. Em board selecionamos o modelo de Arduíno que iremos usar. Em serial port a porta onde o Arduíno está conectado. Em programmer o tipo de programador do Arduíno. (Em geral é Arduíno ISP) 28/01/14 Frederico Möller 11

O Mínimo O Arduino tem duas grandes funções básicas: A função setup(){} E a função loop(){} SETUP LOOP 28/01/14 Frederico Möller 12

O Mínimo A função setup(){} define as configurações de hardware com as quais o arduino irá trabalhar Ex.: Quais pinos serão de saída, quais serão de entrada, b.rate... A função loop(){} seria a função main do arduino... mas na verdade ela nem sempre é necessária Tudo o que for escrito na função loop será repetido indefinidamente 28/01/14 Frederico Möller 13

PARA COMEÇAR... blink Vamos começar com um programa simples, um blink Blink é um programa de fazer um led piscar 28/01/14 Frederico Möller 14

Hardware Vamos usar: 1 led 5mm 1 resistor de 220 Ω 1 placa de matrizes E é claro, um Arduíno O Arduíno fornece uma tensão de 5v, como V=Ri, devemos ligar o led em série com o resistor de 220 ohms 28/01/14 Frederico Möller 15

Hardware 28/01/14 Frederico Möller 16

Software definição Nosso objetivo é fazer com que um led fique piscando, ou seja, alterne seu estado a cada t segundos Ou seja, o Arduíno deverá fornecer corrente para o led por t segundos, depois deverá cortar essa corrente por mais t segundos e repetir isso indefinidamente. 28/01/14 Frederico Möller 17

Software: Setup Se é o led que vai receber um sinal do Arduíno, então ele deverá estar ligado à um pino de saída. Assim, informamos ao Arduíno que o pino 13 será um pino de saída 28/01/14 Frederico Möller 18

Software loop Uma vez que o programa rodará indefinidamente, ou seja, após rodar a última instrução ele voltará para a primeira, podemos (devemos) escrevê-lo dentro da função loop. 28/01/14 Frederico Möller 19

digitalwrite(pino,valor) A função digitalwrite faz com que um dos pinos digitais emita um sinal, alto ou baixo. Ela recebe a numeração do pino e um HIGH para sinal alto e um LOW para baixo 28/01/14 Frederico Möller 20

delay(num) A função delay faz com que o microcontrolador espere por um número de milésimos de segundos antes de executar a próxima operação 28/01/14 Frederico Möller 21

Software blink Tentem agora escrever o programa blink Se parece com o programa ao lado? Tentem carregar ele no Arduíno através do botão:? 28/01/14 Frederico Möller 22

Um pouco de programação Antes de prosseguirmos vamos falar um pouco mais da linguagem usada no Arduíno O Arduíno usa uma linguagem simples, bastante intuitiva. É possível, com realizar com um único comando uma tarefa que levaria umas boas 10 linhas em outras plataformas. Outra característica é que essa linguagem é um dialeto do C ansi, ou seja, a sintaxe das duas é muito parecida. 28/01/14 Frederico Möller 23

Variáveis Assim como no C, as instruções são executadas na ordem em que foram escritas. Em diversas ocasiões é possível que o Arduíno tenha que trabalhar com números e palavras armazenados em sua memória, estes são chamados de variáveis Antes de uma variável ser usada, ela precisa ser declarada, ou seja, seu nome e tipo deve aparecer no escopo do programa. 28/01/14 Frederico Möller 24

Variáveis Tipos: Exemplos int int Números inteiro 16, 15, 2, 0 float float Números reais 5.2, 0.001, 3.5679 char char letras 47, 'a', 28/01/14 Frederico Möller 25

Laços Laços de repetição são usados quando um determinado grupo de instruções deve ser executado diversas vezes, até que um objetivo seja alcançado. A função loop de certa forma é um laço de repetição, mas ela só pode ser chamada uma vez. Temos os laços for, while e do-while 28/01/14 Frederico Möller 26

Laço For: for(condição inicial; objetivo; ação após cada laço) Usado em geral para repetições contadas While while(objetivo) O laço só será executado e continuará sendo até que o objetivo seja alcançado Do-while do{}while(objetivo) Igual ao o while, mas as instruções serão executadas pelo menos uma vez 28/01/14 Frederico Möller 27

Condicionais É uma tomada de decisão, com base em um teste lógico. Tem o formato if(teste lógico){} else{} O bloco else é opcional. Se o teste lógico for verdadeiro, ele executa as instruções dentro do 1º bloco. Se não, executa as dentro do bloco else{} 28/01/14 Frederico Möller 28

Um pouco de programação À esquerda temos um exemplo de um programa que faz um de dois leds piscarem cerca de 998x Um led piscará se o número for primo e o outro se não for. 28/01/14 Frederico Möller 29

Um pouco de programação Em 1 temos declarações de variáveis. As variáveis i e j são do tipo inteiro. A variável a é do tipo booleana. 28/01/14 Frederico Möller 30

Um pouco de programação O tipo booleano só pode assumir valores lógicos, ou seja, verdadeiro ou falso. Voltando nas variáveis inteiras, notem que se quisermos, podemos atribuir um valor ao declararmos, como fizemos com i. 28/01/14 Frederico Möller 31

Um pouco de programação Em dois temos o início de um ciclo, será executado enquanto i for menor que 1000. Se tivéssemos atribuído 1000 ou mais para i, esse ciclo NUNCA seria executado! 28/01/14 Frederico Möller 32

Um pouco de programação Se fosse um ciclo dowhile, as instruções em seu interior seriam executadas pelo menos uma vez, independente do valor de i Em 3 atribuímos um valor para a 28/01/14 Frederico Möller 33

Um pouco de programação Em 4 abrimos um laço for. Sua condição inicial é a variável j tendo o valor de i. Ele será executado enquanto j for maior que um. Ao fim de cada execução, j será diminuído em uma unidade. 28/01/14 Frederico Möller 34

Um pouco de programação Em 5, dentro do ciclo, executamos uma operação com ª No caso uma operação lógica. 'a' assumirá o seu valor antigo, ou o valor lógico da expressão: O resto da divisão de i por j é igual a zero 28/01/14 Frederico Möller 35

Um pouco de programação Em 6 temos um condicional. Se a for verdadeiro, i led ligado ao pino 12 piscará. Caso o contrário o led ligado ao pino 13 piscará. 28/01/14 Frederico Möller 36

Um pouco de programação Em 6 temos um condicional. Se a for verdadeiro, i led ligado ao pino 12 piscará. Caso o contrário o led ligado ao pino 13 piscará. 28/01/14 Frederico Möller 37

Exercício 1 Altere o programa blink, de modo que o tempo que o led ficará aceso seja igual 1000xn ms sendo n o número de piscadas que ele já deu mais 1. Exemplo: 1ª piscada, delays de 1000ms. 2ª piscada, delays de 2000ms 3ª piscada, delays de 3000ms 28/01/14 Frederico Möller 38

Exercício 1 Notem que você pode declarar variáveis fora da função loop. Notem que cada vez que a função a for é chamada, j assume o valor de i 28/01/14 Frederico Möller 39

Lendo... Um microcontrolador ainda poderia fazer muita coisa se só tivesse pinos de saída. No entanto é muito interessante que ele tenha pinos de entrada, ou seja, pinos que possibilitem com que eles leiam informações do mundo exterior. Sinais digitais podem ser lidos com a função digitalread(pino) 28/01/14 Frederico Möller 40

Exemplo: Alterar led A função digitalread(porta) retorna o valor digital da porta a qual está associada. Se tivermos um sinal alto, ela retornará 1, se não, retornará um 0 Vamos fazer um exemplo, para entender melhor seu funcionamento Nosso programa será uma derivação do blink. No entanto haverá um led vermelho também e um botão de pressão. O programa começará com um dos leds piscando e o outro não. Quando o botão for pressionado, os leds deverão alternar de função. Hardware: 2 leds de 5mms (cores diferentes) 2 resistores de 220 ohms 1 resistor de 150 ohms 1 pushbuttom 28/01/14 Frederico Möller 41

Hardware: Alterar led 28/01/14 Frederico Möller 42

Hardware: Alterar led 28/01/14 Frederico Möller 43

Hardware: pushbuttom A tecla de pressão, com 4 pinos, tem funcionamento simples: Ao ligarmos um sinal em uma de suas perninhas o sinal é mandado para a em frente. Quando pressionamos o botão o sinal deixa de ser mandado para esta e é mandado para a lateral 28/01/14 Frederico Möller 44

Hardware pushbuttom Note que ligamos um dos pinos de saída do botão à uma resistência e ao GND, isso serve para forçar que a tensão no outro pino abaixe quando o botão não estiver acionado, dando assim um valor 0 de input lógico Isso significa que nosso botão envia um ALTO quando acionado. Trocando os pinos de saída, conseguiríamos um botão que envia um BAIXO quando acionado. 28/01/14 Frederico Möller 45

Hardware: pushbuttom Outra coisa que temos que nos atentar com botões em geral é o efeito bouncing Quando o botão é acionado é normal haver uma oscilação de tensão antes que ela se estabilize Alguma saída deve ser implementada para evitar que o pino leia algum sinal nessa zona 28/01/14 Frederico Möller 46

Exemplo II: Alternar led Com base no que já foi dito, conseguem implementar o programa? Deu certo? Se parece com o programa ao lado?? 28/01/14 Frederico Möller 47

Exemplo II: Alternar led Variáveis inicializadas logo no início.(1) A variável botao, que vai receber o valor do pushbuttom está com tipo int, mas poderia ser boolean, ou até mesmo char(1) 1 28/01/14 Frederico Möller 48

Exemplo II: Alternar led O pino 11 foi configurado como input, pois receberá dados do mundo externo.(2) Botao recebe o valor do pino 11 pela função digitalread(pin) 3 2 28/01/14 Frederico Möller 49

Exemplo II: Alternar led Mandar reverificar o a variável botao 5ms após receber um ALTO é uma estratégia (ainda que burra) de evitar o bouncing. (4) Note que não informamos literalmente um número em digitalwrite, ao invés disso apontamos uma variável...(5) 4 4 5 28/01/14 Frederico Möller 50

Exercício II Intensidade básica Agora é a vez de vocês: façam um programa onde a intensidade do LED varie de acordo com a quantidade de vezes que o usuário pressiona o botão. Façam com que haja no mínimo 5 graus de intensidade. Lembrem-se, se um led pisca muito rápido, ao olho humano vai parecer que ele está sempre aceso. 28/01/14 Frederico Möller 51

Exercício II intensidade básica Aqui está uma resposta possível para o exercício. Nela o LED pisca numa frequência de 5ms. Há uma diferença entre o tempo que o led permanece aceso e apagado durante a piscada. Essa diferença dita a intensidade aparente dele. 28/01/14 Frederico Möller 52

Exercício II Flags Se observármos bem, o programa todo leva pouco mais que 10ms para executar cada ciclo. Isso ainda é muito rápido para um ser humano. Se não tomarmos cuidado, o programa vai ter executado vários loops antes do usuário tirar o dedo de cima do botão e alterado a variável valor várias e várias vezes. 28/01/14 Frederico Möller 53

Exercício II Flags Para contornar esse problema, podemos usar o conceito de flags. Flags são mecanismos lógicos que assinalam se algo está habilitado ou não. No nosso caso a flag está relacionada com o botão. 28/01/14 Frederico Möller 54

Exercício II Flags 1 Em 1 a flag é declarada, o nosso programa começa com o botão ativo (flag=1) Quando o teste do botão pressionado é feito, é verificado se o botão está habilitado (2) 3 2 Uma vez que as instruções do botão pressionado são executadas, o botão é desabilitado(3) 28/01/14 Frederico Möller 55

Exercício II Flags Se por um acaso, após isso o programa ter executado um loop antes do usuário ter conseguido tirar o dedo do botão, a flag=0 garantirá que o programa não interpretará que o botão foi pressionado novamente. Somente em 4, quando o usuário tirar o dedo do botão é que a flag voltará para 1 e o botão será reabilitado (5). 5 4 28/01/14 Frederico Möller 56

Revisão Vimos nessa lição: O que é o Arduino A forma de um programa do Arduino Leitura digital Escrita digital Anti tremulação Flags 28/01/14 Frederico Möller 57

Leitura complementar O que é um microcontrolador: http://www.mikroe.com/chapters/view/64/chapter-1-intro Efeito phi: http://global.britannica.com/ebchecked/topic/455763/ph 28/01/14 Frederico Möller 58

Dúvidas??? 28/01/14 Frederico Möller 59

Obrigado e até a próxima lição! 28/01/14 Frederico Möller 60