Programação Básica em Arduino Aula 2



Documentos relacionados
Programação Básica em Arduino Aula 2

Programação em Arduino

Robótica com Arduino

Arquitetura de Computadores. Tipos de Instruções

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

INF 1005 Programação I

INTRODUÇÃO À LINGUAGEM C++

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Algoritmos e Programação

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Componentes da linguagem C++

Capítulo 2: Introdução à Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Projeto No. 11 Display de Leds de 7 Segmentos

ESTRUTURA CONDICIONAL

Introdução à Programação

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

OPERADORES E ESTRUTURAS DE CONTROLE

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

CAPITULO 5 COMANDO DE FLUXO IF

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Programação Orientada a Objetos

José Romildo Malaquias

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

Algoritmos Computacionais ( Programas )

Introdução à Lógica de Programação

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

LINGUAGEM C. Estrutura básica de um programa

2 Orientação a objetos na prática

Programando em C++ Histórico da Linguagem C

Linguagem de Programação Introdução a Linguagem Java

Algoritmos e Programação Estruturada

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

9 Comandos condicionais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

ULA Sinais de Controle enviados pela UC

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica

Algoritmos em Javascript

Noções sobre Objetos e Classes

LÓGICA DE PROGRAMAÇÃO

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

Programação WEB I Estruturas de controle e repetição

JSP - ORIENTADO A OBJETOS

compreender a importância de cada estrutura de controle disponível na Linguagem C;

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

ERROS MAIS COMUNS COMETIDOS EM PROGRAMAS E ALGORITMOS

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

e à Linguagem de Programação Python

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

Resumo da Introdução de Prática de Programação com C. A Linguagem C

A Linguagem Java. Alberto Costa Neto DComp - UFS

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Manual Técnico Arduino Supervisório MODBUS & Conversor RS485

Introdução à Linguagem C

QUALIFICAÇÃO TÉCNICA EM DESENVOLVIMENTO DE SISTEMAS

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

APOSTILA PHP PARTE 1

Introdução à Lógica de Programação

Java Como Programar, 8/E

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

4 Criação de macros e introdução à linguagem VBA

Tipos Primitivos, estruturas de iteração e decisão.

Curso de C para Engenharias

Programação: Estruturas de seleção

Sintaxe Básica de Java Parte 1

Conceitos Importantes:

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Conceitos Básicos de C

AULA Uma linguagem de programação orientada a objetos

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Javascript 101. Parte 2

TSP143MU-201 / IM453HU-002 / IM833TU-001 Impressão de QR Code

PRONATEC FUNDAMENTOS DE HARDWARE. Prof. Kilmer Pereira

Revisão C++ - Parte 1

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Estruturas de Repetição Parte II PARA-ATÉ

Transcrição:

Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel

Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas através de um identificador único. O conteúdo de uma variável pode variar ao longo do tempo durante a execução de um programa. Uma variável só pode armazenar um valor a cada instante. Um identificador para uma variável é formado por um ou mais caracteres, obedecendo a seguinte regra: o primeiro caractere deve, obrigatoriamente, ser uma letra. 2

ATENÇÃO!!! Um identificador de uma variável ou constante não pode ser formado por caracteres especiais ou palavras reservadas da linguagem. 3

Tipos de dados definem: A quantidade de memória que uma variável ou constante irá ocupar; As operações que podem ser executadas sobre uma variável ou constante de determinado tipo; A faixa de valores que uma variável ou constante pode armazenar; O modo como o valor armazenado será interpretado. 4

Tipos de Variáveis no Arduino Tipo Definição void boolean char unsigned char Indica tipo indefinido. Usado geralmente para informar que uma função não retorna nenhum valor. Os valores possíveis são true (1) e false (0). Ocupa um byte de memória. Ocupa um byte de memória. Pode ser uma letra ou um número. A faixa de valores válidos é de -128 a 127. O mesmo que o char, porém a faixa de valores válidos é de 0 a 255. byte Ocupa 8 bits de memória. A faixa de valores é de 0 a 255. int unsigned int Armazena números inteiros e ocupa 16 bits de memória ( 2bytes). A faixa de valores é de -32.768 a 32.767. O mesmo que o int, porém a faixa de valores válidos é de 0 a 65.535. word O mesmo que um unsigned int. 5

Tipos de Variáveis no Arduino Tipo long unsigned long short float double Definição Armazena números de até 32 bits (4 bytes). A faixa de valores é de -2.147.483.648 até 2.147.483.647. O mesmo que o long, porém a faixa de valores é de 0 até 4.294.967.295. Armazena número de até 16 bits (2 bytes). A faixa de valores é de -32.768 até 32.767. Armazena valores de ponto flutuante (com vírgula) e ocupa 32 bits (4 bytes) de memória. A faixa de valores é de -3.4028235E+38 até 3.4028235E+38 O mesmo que o float. 6

Em uma linguagem de programação existem vários operadores que permitem operações do tipo: Aritmética Relacional Lógica Composta 7

Operadores aritméticos Símbolo Função + Adição - Subtração * Multiplicação / Divisão % Módulo (resto da divisão inteira) 8

Operadores relacionais Símbolo > Maior < Menor >= Maior ou igual <= Menor ou igual == Igual!= Diferente Função 9

Operadores lógicos Símbolo && E (and) OU (or)! Não (not) Função 10

Operadores compostos Símbolo Função ++ Incremento -- Decremento += Adição com atribuição -= Subtração com atribuição *= Multiplicação com atribuição /= Divisão com atribuição 11

Operador de Atribuição A atribuição de valores a variáveis e constantes é feita com o uso do operador de atribuição (=). O operador de atribuição coloca o valor situado à sua direita dentro do objeto localizado à sua esquerda. Exemplos: int valor = 100; const float pi = 3.14; Atenção!!! O operador de atribuição não vale para o comando #define. 12

Usando o operador de atribuição 13

O monitor serial é utilizado para comunicação entre o Arduino e o computador (PC). O monitor serial pode ser aberto no menu tools opção serial monitor, ou pressionando as teclas CTRL+SHIFT+M. As principais funções do monitor serial são: begin(), read(), write(), print(), println() e available(). 14

Algumas funções bastante usadas: begin(): inicializa a comunicação entre o Arduino e um computador; read(): recebe caracteres inseridos no monitor serial; print(): imprime caracteres no monitor serial; println(): imprime caracteres no monitor serial, mas causa uma quebra de linha no final; available(): retorna o número de bytes disponíveis no buffer de leitura do monitor serial. 15

Imprimindo uma mensagem no monitor serial 16

Saída no monitor serial 17

Muitas vezes é necessário repetir uma determinada instrução ou conjunto de instruções. Os comandos de repetição mantêm em um laço uma instrução ou conjunto de instruções enquanto uma condição estiver sendo satisfeita. O Arduino possui 3 comandos de repetição: while ( ) for ( ; ; ) do while ( ) Laboratório de Automação e Robótica Móvel UFSC - Oficina de Robótica - @2013 18

while ( ) Este comando de repetição avalia uma expressão no início do laço e, caso esta seja verdadeira, a(s) instrução(ções) dentro do laço permanecem sendo executadas. Sintaxe do comando while: while (expr) { cmd; } onde: expr é uma expressão que pode ser lógica, relacional ou aritmética. cmd um ou mais comandos a serem repetidos. A permanência de execução do laço é garantida enquanto a expressão for verdadeira. Como a avaliação da expressão é realizada no início do laço, pode ser que o cmd não execute nenhuma vez. Laboratório de Automação e Robótica Móvel UFSC - Oficina de Robótica - @2013 19

while ( ) Laboratório de Automação e Robótica Móvel UFSC - Oficina de Robótica - @2013 20

while ( ) Laboratório de Automação e Robótica Móvel UFSC - Oficina de Robótica - @2013 21

while ( ) Laboratório de Automação e Robótica Móvel UFSC - Oficina de Robótica - @2013 22

for ( ; ; ) Este comando de repetição deve ser utilizado quando se sabe a quantidade de vezes que uma determinada instrução deve ser executada. O comando for permite que escrevamos de forma mais organizada os laços de repetição baseados em um contador. Sintaxe do comando for: for (inicialização; condição; incremento) { cmd; } onde: inicialização inicialização do contador; condição - é uma expressão relacional ou lógica; incremento - atualização do contador. Laboratório de Automação e Robótica Móvel UFSC - Oficina de Robótica - @2013 23

for ( ; ; ) Laboratório de Automação e Robótica Móvel UFSC - Oficina de Robótica - @2013 24

Nota É possível declarar o contador dentro do cabeçalho do laço for. Laboratório de Automação e Robótica Móvel UFSC - Oficina de Robótica - @2013 25

do while ( ) Semelhante ao comando while. A única diferença é que a condição é testada no final do laço. Sintaxe do comando do while: do { cmd; } while (expr) ; Como a avaliação da expressão é realizada no final do laço, é garantido que o cmd será executado pelo menos uma vez. Laboratório de Automação e Robótica Móvel UFSC - Oficina de Robótica - @2013 26

Em vários momentos em um programa precisamos verificar uma determinada condição afim de selecionar uma ação ou ações que serão executadas. Um comando de seleção também é conhecido por desvio condicional, ou seja, dada um condição, uma parte do programa é executada. Os comandos de seleção podem ser do tipo: Seleção simples Seleção composta Seleção de múltipla escolha 27

Seleção simples Um comando de seleção simples avalia uma condição, ou expressão, para executar uma ação ou conjunto de ações. No Arduino o comando de seleção simples é: if (expr) { cmd } onde: expr representa uma expressão a ser avaliada que pode ser do tipo lógica, relacional ou aritmética. O resultado da avaliação de uma expressão é sempre um valor lógico. cmd comando(s) a ser executado. 28

Seleção simples Acendendo leds pelo monitor serial 29

Seleção simples Verificando se há caracteres no buffer de leitura 30

Seleção composta Um comando de seleção composta é complementar ao comando de seleção simples. O objetivo é executar um comando mesmo que a expressão avaliada pelo comando if (expr) retorne um valor falso. No Arduino o comando de seleção composta é: if (expr) { } cmd; else { } onde: cmd; expr representa uma expressão a ser avaliada que pode ser do tipo lógica, relacional ou aritmética. O resultado da avaliação de uma expressão é sempre um valor lógico. cmd comando(s) a ser executado. 31

Seleção composta Verificando se há caracteres no buffer de leitura 32

Seleção composta (Comandos if aninhados) Acendendo e apagando leds pelo monitor serial 33

Seleção de múltipla escolha Na seleção de múltipla escolha é possível comparar vários valores. No Arduino o comando de seleção de múltipla escolha é: } onde: switch (valor) { case x: cmd 1 ; break; case y: cmd 2 ; break; default: cmd 3 ; valor é um dado a ser avaliado. É representado por uma variável de memória. cmd x comando a ser executado. case indica a opção a ser executada. default comando padrão que deverá ser executado se nenhuma outra escolha (case) tiver sido selecionada. 34

Seleção de múltipla escolha Acendendo e apagando leds pelo monitor serial 35

Verificando o estado de um botão Para verificar se um botão está pressionado ou não basta conectá-lo a uma porta digital. Para que um circuito com botão funcione adequadamente é necessário o uso de resistores pull-down ou pull-up. Os resistores pull-down e pull-up garantem que os níveis lógicos estarão próximos às tensões esperadas. 36

Leitura de um botão com resistor pull-down Ligação na protoboard Resistor pull-down 10kΩ 37

Leitura de um botão com resistor pull-down Programa 38

Leitura de um botão com resistor pull-up Ligação na protoboard Resistor pull-up 10kΩ 39

Leitura de um botão com resistor pull-up Programa 40

Nota O Arduino possui resistores pull-up nas portas digitais. Para ativar os resistores pull-up de uma porta digital basta defini-la como entrada e colocá-la em nível alto (HIGH). pinmode(pin, INPUT) digitalwrite(pin, HIGH) Para desativar os resistores pull-up de uma porta digital basta colocá-la em nível baixo. digitalwrite(pin, LOW) 41

Ativando o pull-up de uma porta digital Ligação na protoboard 42

Ativando o pull-up de uma porta digital Programa 43

Nota O Arduino possui uma constante chamada INPUT_PULLUP que define que a porta será de entrada e o resistor pull-up da mesma será ativado. Exemplo: void setup() { pinmode(10, INPUT_PULLUP); } Define a porta 10 como entrada de dados e ativa o resistor pull-up. 44

Fazer um contador, com um botão pra incremento e um botão para decremento de uma variável. O valor da variável deve ser mostrado em tela. Criar um controle de LEDs (vermelho, amarelo e verde), onde o botão que for pressionado deve acender o LED correspondente a ele, e mostrar em tela qual LED está acesso.