Lista de Exercícios A2

Documentos relacionados
Atividade de laboratório 005. Prof: Carlos Eduardo de Brito Novaes 20 de maio de Alunos RA Nome Curso Semestre

Plano de Aula. 1 o semestre. Cronômetro Interrupções, Timers. Utilizar interrupções para criar um cronômetro com parciais

Atividade de laboratório 003. Prof: Carlos Eduardo de Brito Novaes 29 de abril de Alunos RA Nome Curso Semestre

Plano de Aula. 1 o semestre. Aula número 009 Interrupções. Fazer uso das interrupções externas no Arduíno

Programação em Linguagem C

Atividade de laboratório 004. Prof: Carlos Eduardo de Brito Novaes 6 de maio de Alunos RA Nome Curso Semestre

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

Plano de Aula. 1 o semestre. Aula número 012 Periféricos Comunicação Serial. Conhecer os princípios de comunicação serial

Descrição dos pinos de entrada e saída e de funções especiais. Descrição dos modos de acesso: individual e por porto

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

Robótica com Arduino Professor: Paulo Marcos Trentin

Podem ser substituídos pelo módulo P7-Sensor de Luminosidade da GBK Robotics.

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

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

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2017

Introdução do Arduino para aquisição de dados e controle de instrumentos

MINICURSO ARDUINO BÁSICO

Arduino. Gilmar Aquino

Lista de Exercícios A1

Arduino: primeiros passos para aprender e configurar.

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

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Estrutura Básica da Linguagem Arduino

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

1º minicurso de Arduino no IFUSP 4 a 22 de maio de 2015 Prof. Alexandre Suaide

Curso introdutório de microcontroladores - Plataforma Arduino

Por Fernando Koyanagi

Projeto No. 19 Contador Binário com Chave Rotativa

Projeto 01. Adriano Joaquim de Oliveira Cruz Instituto de Matemática UFRJ 2015 Adriano Cruz. 30 de agosto de 2015

Faculdade de Tecnologia SENAI Pernambuco - Unidade Santo Amaro Curso de Tecnologia em Mecatrônica Industrial

Tutoriais PET-Tele. Introdução à Amostragem de Sinais com o kit Arduino (Versão: A2016M06D21)

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

INTRODUÇÃO A PLATAFORMA ARDUINO. TÁSSIO JOSÉ GONÇALVES GOMES

Introdução ao Arduino

Curso de robótica 2. Novos conceitos de programação

ELE Microprocessadores I

Acendendo o Led com Arduino.

Plano de Aula. 1 o semestre. Aula número 011 Periféricos Display LCD, Conversor AD e conversor DA (PWM)

Kit controle remoto IR acionando 3 Led com Arduino

Manual Técnico Módulo Ponte H 5A

ARDUINO BÁSICO E T A P A 1 O QUE É ARDUINO? Prof. Amadeu Zanon Neto

Aula 1 Apresentação e Conceitos Iniciais. Wellington Cássio Faria fb.com/wellingtoncf

Prof. Adilson Gonzaga

O ARDUINO. Plataforma de prototipagem eletrônica; Open Source; Formada por duas partes básicas: hardware e software.

Interrupções. O que é uma interrupção? Como funciona uma interrupção no AVR?

PSI3441 Arquitetura de Sistemas Embarcados

Oficina de Programação utilizando a plataforma Arduino

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

Sistemas Embarcados:

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

Manual Técnico Módulo de Relê 4 Canais

ENG-1450 Microcontroladores e Sistemas Embarcados. Lab02 Apresentação Kit PicGenios Interrupção e Timers

Sistemas Reativos. Interrupções em microcontroladores (baseado no Atmega328p Arduino Uno)

Arduino - Primeiros Passos

Mundo Arduino: Vamos começar a programar?

Por Fernando Koyanagi 1

Projeto No. 2 Potenciômetro

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

Sistemas de Controle 2

RTC Real Time Counter e Pinos do JM60

introdução Olá, Após alimentar você deve enviar comandos AT para verificar que o modulo está funcionando e comunicando via serial.

Programação em Linguagem C

Entrada de dados com botões

// Arduino {? } Mais o que é?..

Oficina de Programação utilizando a plataforma Arduino

#include <SoftwareSerial.h> SoftwareSerial myserial(2, 3); // RX, TX

OMódulo Comparador Analógico consiste em um conjunto

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Oficina de Programação utilizando a plataforma Arduino

Introdução. O que é o Arduino?

Lista de Exercícios 2

Curso: Tecnologias educacionais de baixo custo. Conector Ciência:

Por Fernando Koyanagi

Introdução à Plataforma ARDUINO

Técnicas de Interface com Microcontroladores (8051)

Pequenos Projetos com Arduino

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO PROJETO SCATMAN S DIMMER

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

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

Interrupção. Prof. Adilson Gonzaga

Universidade Federal de Juiz de Fora Laboratório de Eletrônica CEL 037 Página 1 de 6

Microcontroladores 2 EL08D Turma M12

ARDUINO. Profº. Engº. Robson Dias Ramalho

Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 07

Comunicação Serial 1

Enviando Dados Pela Porta Serial na placa LaunchPad MSP430 Utilizando o ambiente ENERGIA

Projeto No. 15 Sensor Óptico Reflexivo

Transcrição:

Lista de Exercícios A2 Nota: Aluno: RA: Curso: Turma: 1

1 Em um sistema microprocessado, interrupção é o nome dado a um mecanismo que permite interromper a execução normal do programa, para atender a um evento assíncrono. O Arduíno UNO possui dois pinos que podem ser configurados para aceitar interrupções externas, pino 2 e pino 3. Sabendo disso, responda: (1 ponto) 1.1 Quais os modos de disparo possíveis e como funcionam? 1.2 Qual função da biblioteca padrão do Arduíno é utilizada para configurar interrupções externas? 1.3 Como seria a chamada a esta função (resposta do item anterior) para configurar uma interrupção no pino 2, de modo que sempre que o nível lógico presente neste pino passar de baixo para alto (de 0 para 1), então o programa normal seja interrompido e uma rotina chamada minha_isr seja executada? 2

2 Analise o programa a seguir (1 ponto) v o l a t i l e i n t s e n t i d o = 1 ; i n t c o n t a d o r = 0 ; a t t a c h I n t e r r u p t ( d i g i t a l P i n T o I n t e r r u p t ( 2 ), i s r _ u p, RISING ) ; a t t a c h I n t e r r u p t ( d i g i t a l P i n T o I n t e r r u p t ( 3 ), isr_down, RISING ) ; S e r i a l. b e g i n ( 9 6 0 0 ) ; void loop ( ) { i f ( c o n t a d o r >= 100){ s e n t i d o = 1; i f ( c o n t a d o r <= 0){ s e n t i d o = 1 ; c o n t a d o r = c o n t a d o r + s e n t i d o ; S e r i a l. p r i n t l n ( c o n t a d o r ) ; d e l a y ( 5 0 0 ) ; void i s r _ u p ( ) { s e n t i d o = 1 ; void isr_down ( ) { s e n t i d o = 1; 3

2.1 Quais rotinas de serviço de interrupção são definidas? 2.2 Descreva de modo sucinto o comportamento do programa. Não se esqueça de dizer o que é escrito na porta serial, a que intervalo essa informação é atualizada e o que ocorre com essa informação ao ocorrer cada uma das duas interrupções definidas. 4

3 Escreva um programa completo no Arduíno Uno, de maneira que: (2 pontos) Interrupções externas sejam configuradas nos pinos 2 e 3. Essas interrupções devem ser disparadas quando o nível lógico passar de alto para baixo. Os pinos 4 e 5 devem ser configurados como saídas digitais. Ao ocorrer uma interrupção no pino 2, o nível lógico presente no pino 4 deve passar para nível lógico alto. Ao ocorrer uma interrupção no pino 3, o nível lógico presente no pino 4 deve passar para nível lógico baixo. 5

4 Escreva um programa completo no Arduíno Uno, de maneira que: (2 ponto) Interrupções externas sejam configuradas nos pinos 2 e 3. Essas interrupções devem ser disparadas quando o nível lógico passar de alto para baixo. Os pinos 4 e 5 devem ser configurados como saídas digitais. Ao ocorrer uma interrupção no pino 2, o nível lógico presente no pino 4 deve trocar (se era baixo, passa para alto e vice versa). Ao ocorrer uma interrupção no pino 3, o nível lógico presente no pino 5 deve trocar (se era baixo, passa para alto e vice versa). 6

5 Interrupções internas ocorrem dentro da mesma pastilha ou chip que contém o microcontrolador, são geradas por periféricos internos. Um exemplo de interrupção interna no Arduíno Uno são as geradas pelos timers. A seguir apresentamos alguns trechos de código para configurar o Timer1, para cada caso, responda qual o intervalo de tempo entre as interrupções geradas (1 ponto) 5.1 O código abaixo configura o Timer1 para produzir interrupções em um intervalo de n o I n t e r r u p t s ( ) ; TCCR1A = B00000000 ; TCCR1B = B00001010 ; TCNT1 = 0 ; OCR1A = 19999; TIMSK1 = B00000010 ; i n t e r r u p t s ( ) ; 5.2 O código abaixo configura o Timer1 para produzir interrupções em um intervalo de n o I n t e r r u p t s ( ) ; TCCR1A = B00000000 ; TCCR1B = B00001011 ; TCNT1 = 0 ; OCR1A = 19999; TIMSK1 = B00000010 ; i n t e r r u p t s ( ) ; 7

5.3 O código abaixo configura o Timer1 para produzir interrupções em um intervalo de n o I n t e r r u p t s ( ) ; TCCR1A = B00000000 ; TCCR1B = B00001100 ; TCNT1 = 0 ; OCR1A = 19999; TIMSK1 = B00000010 ; i n t e r r u p t s ( ) ; 5.4 O código abaixo configura o Timer1 para produzir interrupções em um intervalo de n o I n t e r r u p t s ( ) ; TCCR1A = B00000000 ; TCCR1B = B00001101 ; TCNT1 = 0 ; OCR1A = 19999; TIMSK1 = B00000010 ; i n t e r r u p t s ( ) ; 8

5.5 O código abaixo configura o Timer1 para produzir interrupções em um intervalo de n o I n t e r r u p t s ( ) ; TCCR1A = B00000000 ; TCCR1B = B00001010 ; TCNT1 = 0 ; OCR1A = 59999; TIMSK1 = B00000010 ; i n t e r r u p t s ( ) ; 9

6 Analise o programa a seguir (1 ponto) v o l a t i l e long i n t c o n t a d o r = 0 ; i n t n i v e l = LOW; pinmode ( 1 3, OUTPUT ) ; n o I n t e r r u p t s ( ) ; TCCR1A = B00000000 ; TCCR1B = B00001010 ; TCNT1 = 0 ; OCR1A = 49999; TIMSK1 = B00000010 ; i n t e r r u p t s ( ) ; void loop ( ) { i f ( c o n t a d o r > 150){ d i g i t a l W r i t e ( 1 3, HIGH ) ; e l s e { d i g i t a l W r i t e ( 1 3, LOW) ; ISR ( TIMER1_COMPA_vect ) { c o n t a d o r ++; i f ( c o n t a d o r >= 200){ c o n t a d o r = 0 ; 10

6.1 Quais rotinas de serviço de interrupção são definidas? 6.2 Suponha que há um LED conectado ao pino digital treze, e que este acenderá sempre que o nível lógico presente for alto. Durante quanto tempo (aproximadamente) este LED permanece aceso e quanto tempo permanece apagado? 11

7 Analise o programa a seguir (2 pontos) S t r i n g comando = ; bool comando_completo = f a l s e ; u n s i g n e d i n t c o n t a d o r = 0 ; S e r i a l. b e g i n ( 9 6 0 0 ) ; comando. r e s e r v e ( 6 4 ) ; void loop ( ) { l e r _ s e r i a l ( ) ; i f ( comando_completo ) { i f ( comando == A ) { S e r i a l. p r i n t l n ( B ) ; i f ( comando == c o n t a d o r ) { S e r i a l. p r i n t l n ( c o n t a d o r ) ; comando = ; comando_completo = f a l s e ; c o n t a d o r ++; void l e r _ s e r i a l ( ) { w h i l e ( S e r i a l. a v a i l a b l e ( ) > 0) { c h a r dado = ( c h a r ) S e r i a l. r e a d ( ) ; i f ( dado == ; ) { comando_completo = t r u e ; e l s e { comando += dado ; 12

7.1 O que deveria ocorrer se o Arduíno receber a sequencia de dados A; na porta serial? O que será devolvido por esta linha de dados? 7.2 O que deveria ocorrer se o Arduíno receber a sequencia de dados contador; na porta serial? O que será devolvido por esta linha de dados? 7.3 Modifique a rotina loop para que, ao receber a sequencia de dados metade; na porta serial, o valor presente na variável contador seja reduzido à metade. 13