Plano de Aula. 1 o semestre. Aula número 009 Interrupções. Fazer uso das interrupções externas no Arduíno
|
|
- Gilberto Ferretti
- 5 Há anos
- Visualizações:
Transcrição
1 Diretoria de Curso Plano de Aula 1 o semestre Nome do curso Eng. Ciências da Computação + TI + TADS + Eng. Elétrica Nome da Unidade Curricular Microprocessadores e Microcontroladores Aula número 009 Tema Interrupções Período Turma Noturno Tópicos O que são interrupções Uso de interrupções no Arduíno Objetivos Compreender o que são e para que servem as interrupções em um sistema microprocessado Fazer uso das interrupções externas no Arduíno Habilidades Utilização das rotinas de configuração das interrupções externas Aplicação prática, leitura de um encoder incremental Bases Tecnológicas Plataforma online 123d.circuits.io 1
2 Recomendada Bibliografia Primeiros passos com o Arduíno - Massimo Banzi e Michael Shiloh Microcontrolador 8051 Detalhado - Denys E. C. Nicolosi Parte II - Capítulo 6 Documentação oficial do Arduíno
3 1 Interrupções Interrupção é um evento, externo ou interno ao microcontrolador, que o obriga a suspender temporariamente suas atividades para atender a este evento que o interrompe. Toda vez que uma interrupção ocorre, o microprocessador irá se desviar para outra parte do código, o chamado serviço de interrupção, adequado para tratar a interrupção gerada. Após completar a execução do serviço de interrupção (que costuma ser um trecho de código bem pequeno e rápido), o microprocessador deve voltar para o código que executava antes de ser interrompido. Repare que a chamada ao serviço de interrupção é semelhante à chamada a uma função ou sub-rotina comum, a grande diferença esta no fato de que uma interrupção não é um evento previsto. Uma analogia válida é pensar no trabalho em escritório para compreender como funcionam as interrupções. Suponha que você esteja trabalhando em uma determinada tarefa A e em um dado momento não programado, seu chefe lhe solicita a execução imediata de uma outra tarefa B. Você é então obrigado a parar completamente a tarefa A, atende a solicitação para executar a tarefa B e, apenas quando esta última estiver concluída, você pode então retornar para o ponto onde parou na execução da tarefa A. 1.1 Propriedades de uma interrupção Vetorada ou não vetorada: Quando o microprocessador é interrompido, ele desvia para o endereço onde se encontra o serviço adequado para tratar a interrupção. Se esse endereço é fixo, chamamos de interrupção não vetorada. Por outro lado, se esse endereço pode ser especificado pelo dispositivo que gera a interrupção, chamamos de interrupção vetorada. Mascaramento: Por meio do mascaramento, realizado via software ou também via hardware, podemos habilitar ou desabilitar uma ou mais interrupções. Isso é especialmente útil na realização de tarefas críticas onde por alguma razão o microprocessador não possa ser interrompido em hipótese alguma. Prioridade: Geralmente um microprocessador pode aceitar diversas interrupções diferentes. Neste caso, é possível programar a prioridade de cada evento de interrupção, de modo que não haja conflitos ou disputas entre elas. Origem: No caso de microcontroladores, a interrupção pode ser interna caso seja gerada por algum periférico interno ao chip (timer ou UART por exemplo), ou externa, caso venha de um dispositivo externo ao chip. Tipo de disparo: É uma propriedade das interrupções externas ao chip, pode-se programar um pino para gerar interrupções de acordo com o nível lógico (0 ou 1) ou de acordo com a borda (transição de 0 para 1 ou transição de 1 para 0). 2 Interrupções externas no Arduíno Uno O Arduíno Uno possui dois pinos capazes de gerar interrupções externas, são os pinos digitais 2 e 3. Além disso, a biblioteca padrão do Arduíno já oferece algumas rotinas para simplificar bastante a programação de interrupções externas void attachinterrupt(int interrupt, int isr, int mode): Configura a interrupção interrupt para chamar a rotina isr (interrupt service routine), segundo o modo de operação mode. Esta rotina não retorna nenhum valor e recebe três parâmetros: interrupt: A interrupção a ser utilizada. No caso de interrupções externas, vamos utilizar o valor retornado pela chamada à função digitalpintointerrupt(pino), onde pino pode assumir o valor 2 ou 3. isr: O nome da rotina que vai tratar a interrupção gerada, é o nosso serviço de interrupção ou interrupt service routine. Deve ser declarada como uma função que não receberá nem retornará parâmetros, por exemplo: void meu_isr ( ) { / / Código do s e r v i ç o de i n t e r r u p ç ã o v a r _ g l o b a l = v a r _ g l o b a l + 1 ; Devemos observar que a rotina isr deve ser pequena e executar rapidamente. Além disso, ao tratar 3
4 uma interrupção, ou seja, dentro da rotina isr, outras interrupções não podem ocorrer. Isso implica que o código dentro da isr não pode ser interrompido externamente, mas também que funções como delay() e millis() também não irão funcionar (essas duas funções da biblioteca do Arduíno utilizam interrupções internas para operar). Se for imprescindível realizar algum tipo de delay dentro da isr, podemos utilizar a rotina delaymicroseconds(), que recebe um valor em microssegundos, isso permite alguma sincronização para eventos muito rápidos. Outro ponto muito importante é que a isr não recebe nem retorna valores. Assim, qualquer tipo de comunicação entre a isr e o programa principal deve ser realizada por meio de variáveis globais, declaradas como voláteis. Para isso utilizamos a palavra reservada volatile, que diz ao compilador que a variável declarada a seguir pode ser alterada por outros meios além do programa principal. Isso vai desligar qualquer otimização que o compilador julgaria viável em outras situações. mode: O modo de disparo da interrupção. Podemos configurar para um dos quatro valores predefinidos: LOW: Dispara a interrupção quando o pino esta em nível lógico baixo; CHANGE: Dispara a interrupção quando o nível lógico do pino muda; RISING: Dispara a interrupção quando o nível lógico do pino sofre uma transição de 0 para 1; FALLING: Dispara a interrupção quando o nível lógico do pino sofre uma transição de 1 para 0; void detachinterrupt(int interrupt): Desabilita a interrupção em questão. No caso de interrupções externas, devemos utilizar o valor retornado pela chamada à função digitalpintointerrupt(pino), onde pino pode assumir o valor 2 ou 3. interrupts(): Habilita todas as interrupções nointerrupts(): Desabilita todas as interrupções. Essas duas funções podem ser utilizadas para executar partes críticas de um código, onde não será permitida a ocorrência de interrupções. Por exemplo: void s e t u p ( ) { void loop ( ) { n o I n t e r r u p t s ( ) ; / / p a r t e c r í t i c a do c ó d i g o i n t e r r u p t s ( ) ; / / p a r t e não c r í t i c a 2.1 Exemplo No exemplo a seguir, vamos configurar interrupções do tipo RISING nos pinos 2 e 3. Vamos também declarar duas rotinas isr, uma para cada pino gerador de interrupção. O funcionamento do programa será o seguinte. Vamos configurar uma variável do tipo int (inteiro) como um contador. Ao ocorrer uma interrupção no pino 2, esse valor deve ser resetado imediatamente, já ao ocorrer uma interrupção no pino 3, o contador deve assumir o valor 100. Observe que a variável de contagem deve ser declarada como volatile para que não ocorram problemas. 4
5 / / v a r i a v e l de contagem / / s e r á m o d i f i c a d a d e n t r o das r o t i n a s i s r / / e n t ã o deve s e r d e c l a r a d a como v o l a t i l e v o l a t i l e i n t c o n t a d o r ; void s e t u p ( ) { / / vamos c o n f i g u r a r as i n t e r r u p ç õ e s 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 _ p i n o 2, 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 ), i s r _ p i n o 3, RISING ) ; void loop ( ) { / / a r o t i n a loop v a i i n c r e m e n t a r a v a r i á v e l de contagem / / a cada 1 segundo d e l a y ( ) ; c o n t a d o r ++; / / D e c l a r a ç ã o das duas ISRs void i s r _ p i n o 2 ( ) { c o n t a d o r = 0 ; void i s r _ p i n o 3 ( ) { c o n t a d o r = 100; 5
6 2.2 Exercícios Crie um programa utilizando interrupção externa do tipo FALLING no pino 2. O programa deve configurar o pino 0 como uma saída digital e o nível lógico escrito neste pino deve ser trocado (de 1 para 0 ou de 0 para 1) quando ocorrer a interrupção / / v a r i a v e l do n í v e l l ó g i c o / / s e r á m o d i f i c a d a d e n t r o das r o t i n a s i s r / / e n t ã o deve s e r d e c l a r a d a como v o l a t i l e v o l a t i l e i n t n i v e l ; void s e t u p ( ) { / / vamos c o n f i g u r a r as i n t e r r u p ç õ e s 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 _ p i n o 2, FALLING ) ; / / vamos c o n f i g u r a r o pino 0 como s a í d a d i g i t a l pinmode ( 0, OUTPUT ) ; / / c o n f i g u r a r um n í v e l l ó g i c o i n i c i a l n i v e l = LOW; void loop ( ) { d i g i t a l W r i t e ( 0, n i v e l ) ; / / D e c l a r a ç ã o das duas ISRs void i s r _ p i n o 2 ( ) { i f ( n i v e l ==LOW) { n i v e l = HIGH ; n i v e l = LOW; 6
7 2.2.2 Crie um programa utilizando interrupção externa do tipo RISING no pino 3. O programa deve incrementar um contador do tipo inteiro sempre que uma interrupção for gerada / / v a r i a v e l de contagem / / s e r á m o d i f i c a d a d e n t r o das r o t i n a s i s r / / e n t ã o deve s e r d e c l a r a d a como v o l a t i l e v o l a t i l e i n t c o n t a d o r ; void s e t u p ( ) { / / vamos c o n f i g u r a r as i n t e r r u p ç õ e s 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 ), i s r _ p i n o 3, RISING ) ; / / c o n f i g u r a r um v a l o r i n i c i a l c o n t a d o r = 0 ; void loop ( ) { / / D e c l a r a ç ã o da ISR void i s r _ p i n o 2 ( ) { c o n t a d o r ++; 7
8 2.3 Aplicação prática, leitura de encoder incremental Encoders incrementais são comumente utilizados para monitorar mudanças de posição. Diferentemente dos encoders absolutos, um encoder incremental não fornece uma leitura absoluta da posição, mas permite detectar a sua mudança. No entanto, se assumirmos uma dada posição como sendo o referencial zero, ou seja, devemos fazer o setup ou zeramento do encoder, é possível utilizar encoders incrementais para monitorar posições absolutas. Tipicamente, um encoder incremental disponibiliza dois canais onde monitoramos o nível lógico por mudanças que representam um incremento ou um decremento na posição. A tabela 1 ilustra passo a passo os níveis lógicos ao se avançar a posição do encoder Posição Canal A Canal B X X X X X X X X X Tabela 1: Encoder incremental ao se avançar as posições A tabela 2 exibe os níveis lógicos ao se retroceder a posição do encoder Posição Canal A Canal B X X X X X X X X X Tabela 2: Encoder incremental ao se avançar as posições Note que a cada posição, apenas um dos canais muda seu nível lógico. Para determinar a posição atual, devemos verificar a configuração atual e a configuração anterior dos canais A e B do encoder. Assim, se anteriormente tínhamos os canais A e B em nível lógico baixo (zero) e agora verificamos que o canal A apresenta nível lógico alto (um) e o canal B continua com nível lógico baixo, então verificamos que houve um decremento de uma posição na leitura do encoder. Com base nessas informações e nas tabelas 1 e 2, podemos resumir o incremento ou decremento da posição de acordo com a tabela 3 A leitura de um encoder incremental é um caso típico onde é interessante fazer uso de interrupções. Perceba que se deixarmos de monitorar os canais do encoder por um tempo muito longo, podem ocorrer mais de uma mudanças de posição e, neste caso, perderemos a contagem. Por outro lado, monitorar frequentemente os canais do encoder pode demandar muito tempo de processamento, tempo que poderia ser utilizado em outras funções e cálculos. 8
9 Leitura Anterior Leitura Atual Canal A Canal B Canal A Canal B Ação Não Muda Incrementa Decrementa Erro Decrementa Não Muda Erro Incrementa Incrementa Erro Não Muda Decrementa Erro Decrementa Incrementa Não Muda Tabela 3: Ação no encoder conforme mudança nos canais A e B A seguir apresentamos uma possível implementação para a leitura de um encoder incremental utilizando interrupções. Este código pode ser testado online em Inicie a simulação e abra o monitor serial localizado dentro da aba do editor de código. No monitor serial será possível visualizar a indicação da posição lida pelo encoder. 9
10 / / E s t e programa f a z uso de i n t e r r u p ç õ e s p a r a m o n i t o r a r um / / e n c o d e r i n c r e m e n t a l l i g a d o aos p i n o s 2 e 3 do Arduíno UNO. / / Ao o c o r r e r uma mudança, a v a r i á v e l e n c o d e r é a t u a l i z a d a / / e a i n f o r m a ç ã o é d i s p o n i b i l i z a d a na p o r t a s e r i a l / / v a r i á v e i s g l o b a i s e v o l á t e i s / / e n c o d e r armazena o v a l o r da p o s i ç ã o do e n c o d e r / / c a n a l _ a armazena o e s t a d o l ó g i c o a n t e r i o r do c a n a l A / / c a n a l _ b armazena o e s t a d o l ó g i c o a n t e r i o r do c a n a l B / / change s i n a l i z a se houve mudança de e s t a d o, usada / / apenas p a r a a t u a l i z a r a i n f o r m a ç ã o na p o r t a s e r i a l v o l a t i l e long i n t e n c o d e r = 0 ; v o l a t i l e b y t e c a n a l _ a = LOW; v o l a t i l e b y t e c a n a l _ b = LOW; v o l a t i l e b y t e change = LOW; / / r o t i n a de s e t u p void s e t u p ( ) { / / C o n f i g u r a a p o r t a s e r i a l p a r a monitorarmos / / Configuramos uma t a x a de 9600 bauds S e r i a l. b e g i n ( ) ; / / Mensagem de a p r e s e n t a ç ã o do programa S e r i a l. p r i n t l n ( ) ; S e r i a l. p r i n t l n ( T e s t e Encoder : ) ; / / c o n f i g u r a as i n t e r r u p ç õ e s nos p i n o s / / pino 2 > c a n a l A / / pino 3 > c a n a l B 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 _ c a n a l _ a, CHANGE) ; 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 ), i s r _ c a n a l _ b, CHANGE) ; / / r o t i n a p r i n c i p a l void loop ( ) { / / se houve mudança, e n v i a novo v a l o r p a r a p o r t a s e r i a l i f ( change == HIGH) { S e r i a l. p r i n t ( e n c o d e r = ) ; S e r i a l. p r i n t l n ( e n c o d e r ) ; change = LOW; 10
11 / / r o t i n a s de s e r v i ç o de i n t e r r u p ç ã o ISRs void i s r _ c a n a l _ a ( ) { change = HIGH ; i f ( c a n a l _ a == LOW) { i f ( c a n a l _ b == LOW) { / / AB e r a 00 e f o i p a r a 10, d e c r e m e n t a o e n c o d e r encoder ; c a n a l _ a = HIGH ; / / AB e r a 01 e f o i p a r a 11, i n c r e m e n t a o e n c o d e r e n c o d e r ++; c a n a l _ a = HIGH ; i f ( c a n a l _ b == LOW) { / / AB e r a 10 e f o i p a r a 00, i n c r e m e n t a o e n c o d e r e n c o d e r ++; c a n a l _ a = LOW; / / AB e r a 11 e f o i p a r a 01, d e c r e m e n t a o e n c o d e r encoder ; c a n a l _ a = LOW; void i s r _ c a n a l _ b ( ) { change = HIGH ; i f ( c a n a l _ a == LOW) { i f ( c a n a l _ b == LOW) { / / AB e r a 00 e f o i p a r a 01, d e c r e m e n t a o e n c o d e r e n c o d e r ++; c a n a l _ b = HIGH ; / / AB e r a 01 e f o i p a r a 00, d e c r e m e n t a o e n c o d e r encoder ; c a n a l _ b = LOW; i f ( c a n a l _ b == LOW) { / / AB e r a 10 e f o i p a r a 11, d e c r e m e n t a o e n c o d e r encoder ; c a n a l _ b = HIGH ; / / AB e r a 11 e f o i p a r a 10, i n c r e m e n t a o e n c o d e r e n c o d e r ++; c a n a l _ b = LOW; 11
Plano de Aula. 1 o semestre. Aula número 010 Interrupções Internas Timers. Uso de interrupções internas produzidas pelos timers
Diretoria de Curso Plano de Aula 1 o semestre Nome do curso Eng. Ciências da Computação + TI + TADS + Eng. Elétrica Nome da Unidade Curricular Microprocessadores e Microcontroladores Aula número 010 Tema
Leia maisAtividade de laboratório 004. Prof: Carlos Eduardo de Brito Novaes 6 de maio de Alunos RA Nome Curso Semestre
Atividade de laboratório 004 Prof: Carlos Eduardo de Brito Novaes 6 de maio de 2016 Alunos RA Nome Curso Semestre Resumo Atividade da unidade curricular: Laboratório Integrado de Microprocessadores e Microcontroladores.
Leia maisAtividade de laboratório 003. Prof: Carlos Eduardo de Brito Novaes 29 de abril de Alunos RA Nome Curso Semestre
Atividade de laboratório 003 Prof: Carlos Eduardo de Brito Novaes 29 de abril de 2016 Alunos RA Nome Curso Semestre Resumo Atividade da unidade curricular: Laboratório Integrado de Microprocessadores e
Leia maisPlano de Aula. 1 o semestre. Aula número 012 Periféricos Comunicação Serial. Conhecer os princípios de comunicação serial
Diretoria de Curso Plano de Aula 1 o semestre Nome do curso Eng. Ciências da Computação + TI + TADS + Eng. Elétrica Nome da Unidade Curricular Microprocessadores e Microcontroladores Aula número 012 Tema
Leia maisPlano de Aula. 1 o semestre. Cronômetro Interrupções, Timers. Utilizar interrupções para criar um cronômetro com parciais
Diretoria de Curso Plano de Aula 1 o semestre Nome do curso Nome da Unidade Curricular Aula número Tema Período Turma Eng. Ciências da Computação + TI + TADS + Eng. Elétrica Microprocessadores e Microcontroladores
Leia maisLista de Exercícios A2
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
Leia maisAtividade de laboratório 005. Prof: Carlos Eduardo de Brito Novaes 20 de maio de Alunos RA Nome Curso Semestre
Atividade de laboratório 005 Prof: Carlos Eduardo de Brito Novaes 20 de maio de 2016 Alunos RA Nome Curso Semestre Resumo Atividade da unidade curricular: Laboratório Integrado de Microprocessadores e
Leia maisAtividade de laboratório 001. Prof: Carlos Eduardo de Brito Novaes 18 de março de Alunos RA Nome Curso Semestre
Atividade de laboratório 001 Prof: Carlos Eduardo de Brito Novaes 18 de março de 2016 Alunos RA Nome Curso Semestre Resumo Atividade da unidade currícular: Laboratório Integrado de Microprocessadores e
Leia maisArquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
Leia maisDescrição dos pinos de entrada e saída e de funções especiais. Descrição dos modos de acesso: individual e por porto
Tópicos Descrição dos pinos de entrada e saída e de funções especiais Descrição dos modos de acesso: individual e por porto Acesso individual aos pinos Objetivos Compreender o que são periféricos em um
Leia maisPlano de Aula. 1 o semestre. Aula número 011 Periféricos Display LCD, Conversor AD e conversor DA (PWM)
Diretoria de Curso Plano de Aula 1 o semestre Nome do curso Eng. Ciências da Computação + TI + TADS + Eng. Elétrica Nome da Unidade Curricular Microprocessadores e Microcontroladores Aula número 011 Tema
Leia maisAtividade de laboratório 007. Prof: Carlos Eduardo de Brito Novaes 10 de junho de Alunos RA Nome Curso Semestre
Atividade de laboratório 007 Prof: Carlos Eduardo de Brito Novaes 10 de junho de 2016 Alunos RA Nome Curso Semestre Resumo Atividade da unidade curricular: Laboratório Integrado de Microprocessadores e
Leia maisAtividade de laboratório 002. Prof: Carlos Eduardo de Brito Novaes 1 de abril de Alunos RA Nome Curso Semestre
Atividade de laboratório 002 Prof: Carlos Eduardo de Brito Novaes 1 de abril de 2016 Alunos RA Nome Curso Semestre Resumo Atividade da unidade curricular: Laboratório Integrado de Microprocessadores e
Leia maisMicroprocessadores TIMER/COUNTER I
Microprocessadores TIMER/COUNTER I Prof. Clayrton Henrique rev. 01 mar. 2016 Roteiro Introdução; Características; Modos de Operação; Modo 0 Modo 1 Modo 2 Modo 3 Exemplos; Referências... 2 Introdução Apresentação
Leia maisSEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES
SEL 0415 Aula 11 Microcontrolador 8051 Parte 3 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 415 INTERRUPÇÃO Estrutura de Interrupção do 8051 n 5 Fontes [ 2 Externas
Leia maisIntrodução. O que é o Arduino?
Arduino 2 Introdução O que é o Arduino? Arduino é uma plataforma de desenvolvimento de hardware programável que possui um chip Atmel AVR, o qual pode variar dependendo do modelo do Arduino (podendo nos
Leia maisMicrocontroladores. Interrupções no Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão
Microcontroladores no 8051 Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão O que é interrupção? Interrupção 2 Definição Qualquer evento interno ou externo que obriga o microcontrolador
Leia maisMicroprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento
Microprocessadores e Microcontroladores Professor Lucas Araujo do Nascimento REVISÃO Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores COMPUTADOR Microprocessadores e Microcontroladores
Leia maisOrganização de Memórias
Intel 8051 O Intel 8051 é um microcontrolador de 8 bits que pertence a família MCS-51 da Intel e foi lançado em 1977. É tido como o microcontrolador mais popular do mundo, pois é muito versátil e possui
Leia maisCurso introdutório de microcontroladores - Plataforma Arduino
Curso introdutório de microcontroladores - Plataforma Arduino Prof. Fábio Rodrigues de la Rocha FLISOL - UTFPR-PR - Abril/2011 FLISOL - UTFPR-PR - Abril/2011 1 Introdução Mas afinal, o que é Arduino? Arduino
Leia maisProjeto 01. Adriano Joaquim de Oliveira Cruz Instituto de Matemática UFRJ 2015 Adriano Cruz. 30 de agosto de 2015
Projeto 01 Adriano Joaquim de Oliveira Cruz Instituto de Matemática UFRJ 2015 Adriano Cruz 30 de agosto de 2015 1 Introdução Este projeto é baseado no Laboratório 01 do Livro Head First C [2]. A idéia
Leia mais- Tarefas Práticas de Programação usando Arduino - Imagem do Robô com Legendas
- Tarefas Práticas de Programação usando Arduino - Profa. Flavia Pereira de Carvalho Imagem do Robô com Legendas Dicas de código: 1) Os pinos dos leds estão nas posições de 2 a 7 2) Comandos básicos necessários
Leia maisMINICURSO ARDUINO BÁSICO
MINICURSO ARDUINO BÁSICO Ministrantes: Henrique Wippel Parucker da Silva Murilo de Oliveira do Nascimento Ícaro Cristofolini COLMÉIA Quem somos? O que fazemos? PLATAFORMA DE PROTOTIPAGEM ARDUINO ARDUINO
Leia maisAula 1 Apresentação e Conceitos Iniciais. Wellington Cássio Faria fb.com/wellingtoncf
Aula 1 Apresentação e Conceitos Iniciais Formação: Professor: Curso técnico Médio (2o grau) Técnico em Eletrônica Industrial, CEP - Centro de Educação Profissional Tancredo Neves (julho/2010) - concluída.
Leia maisAULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.
AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais. 6.1 Objetivo: O objetivo desta aula é mostrar aos alunos o que é e como funciona o Arduino e seus
Leia maisControladores do IBM-PC. Gustavo G. Parma
Controladores do IBM-PC Gustavo G. Parma IBM-PC baseado em ISA Sistema de interrupção do x86 Duas entradas de solicitação de interrupção NMI: Non-maskable interruption Erro de paridade da RAM Channel Check
Leia maisLABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 03: INTERRUPÇÕES
AEVSF Autarquia Educacional do Vale do São Francisco FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Curso de Ciência da Computação LABORATÓRIO DE ARQUITETURA DE COMPUTADORES Prof. Sérgio
Leia maisArduino - Primeiros Passos
Arduino - Primeiros Passos Por Fábio Souza 06/11/2013 ÍNDICE DE CONTEÚDO 1. Introdução ao Arduino 2. Plataforma de desenvolvimento Arduino 3. Hardware do Arduino 4. Software do Arduino 5. IDE do Arduino
Leia maisProf. Adilson Gonzaga
Prof. Adilson Gonzaga Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos Xtal1 e Xtal2 da CPU.
Leia maisArduino. Gilmar Aquino
Arduino Gilmar Aquino Microcontroladores; O que é o Arduino; Sumário A origem do Arduino; Por que Arduino; Placas; Hardware; Shields; Módulos; Software; Exemplo de aplicação; Dicas, Sites e Livros; Prática.
Leia maisMundo Arduino: Vamos começar a programar?
Mundo Arduino: Vamos começar a programar? Date : 2 de Janeiro de 2014 Por Jorge Alcino para o Pplware O Arduino é uma plataforma de hardware livre, projectado com um microcontrolador Atmel AVR. É uma placa
Leia maisLista de Exercícios A1
Lista de Exercícios A1 14 de março de 2016 1 Realizar a conversão dos números a seguir para binário de 8 bits 1.1 Número (100) 10 Resposta: 0110 0100 1.2 Número (33) 10 Resposta: 0010 0001 1.3 Número (66)
Leia maisMicrocontroladores. Contadores e Temporizadores. Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão
Microcontroladores Contadores e Temporizadores Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão Introdução Como fazer um temporizador? 2 maneiras 2 Introdução Como fazer um
Leia maisDisciplina: Laboratório de Fis26
1 Disciplina: Laboratório de Fis26 www.fis.ita.br/labfis26 Professores: Sonia Guimarães soniagui@ita.br Douglas Leite prof.dmgl@gmail.com Monitoras: Larissa chazfisica@gmail.com Flávia rocha.pereira.flavia@gmail.com
Leia maisEnviando Dados Pela Porta Serial na placa LaunchPad MSP430 Utilizando o ambiente ENERGIA
Enviando Dados Pela Porta Serial na placa LaunchPad MSP430 Utilizando o ambiente ENERGIA Autor: Renne Takao Meguro Portal Ribeirão Preto 14/07/2012 Olá Pessoal, dando continuidade ao artigo do Blog do
Leia maisRobótica com Arduino Professor: Paulo Marcos Trentin
Robótica com Arduino Professor: Paulo Marcos Trentin CDI Onde comprar o Arduino? http://lojabrasilrobotics.blogspot.com/ Onde comprar o Arduino? http://www.mercadolivre.com.br/ Onde comprar o Arduino?
Leia maisProgramação do Arduino. Parte 1. IDE Wiring
Programação do Arduino Parte 1 IDE Wiring Ambiente de programação: IDE Wiring Barra de título Menu Barra de ferramentas Janela de edição Janela de status Ambiente de programação: IDE Wiring Compilação
Leia maisUTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)
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 e Contadores/Temporizadores Este texto apresenta uma
Leia maisInterrupção. Prof. Adilson Gonzaga
Interrupção Prof. Adilson Gonzaga Estrutura de Programação Assembly Programa Principal Chamada de Sub-rotina1 Programa Principal Chamada de Sub-rotina2 Sub-rotina1 Subrotina2 Programa Principal Chamada
Leia maisINTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY
INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY INTRODUÇÃO A Plataforma Arduino é considerada plataforma aberta, ou seja, qualquer pessoa pode efetuar uma melhoria em um código, biblioteca e disponibilizá-la
Leia maisInterrupções. O que é uma interrupção? Como funciona uma interrupção no AVR?
Interrupções O que é uma interrupção? Irei agora começar a falar de interrupções a partir do mais básico o que é uma interrupção? Uma interrupção é basicamente uma pausa no programa, enquanto o processador
Leia maisRevisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
Leia maisNível da Arquitetura do Conjunto das Instruções
Fluxo Seqüencial de Controle e Desvios (1) Nível da Arquitetura do Conjunto das Instruções (Aula 13) Fluxo de Controle Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Fluxo
Leia maisSistemas Embarcados:
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Sistemas Embarcados: Interrupções DCA0119 Sistemas Digitais Heitor Medeiros Florencio Tópicos Conceito de
Leia maisAcetatos de apoio às aulas teóricas
Microprocessadores e Aplicações Acetatos de apoio às aulas teóricas Ana Cristina Lopes Dep. Engenharia Electrotécnica http://orion.ipt.pt anacris@ipt.pt Ana Cristina Lopes, 24 de Outubro de 2004 Microprocessadores
Leia maisUniversidade Federal Fluminense - UFF Escola de Engenharia - TCE Curso de Engenharia de Telecomunicações - TGT
Universidade Federal Fluminense - UFF Escola de Engenharia - TCE Curso de Engenharia de Telecomunicações - TGT Programa de Educação Tutorial PET Grupo PET-Tele Tutoriais PET-Tele Implementação de um sistema
Leia maisPlano de Trabalho Docente Ensino Técnico
Plano de Trabalho Docente 2015 Ensino Técnico Etec Etec: Monsenhor Antônio Magliano Código: 088 Município: Garça Eixo Tecnológico: Controle e Processos Industriais Habilitação Profissional: Técnica de
Leia maisOFICINA Uso da plataforma Arduino no Ensino de Ciências
OFICINA Uso da plataforma Arduino no Ensino de Ciências Grupo 2 de Atividades Astrogildo Junqueira Docente Física/IFSP Lucas D Amásio David Larronda Licenciandos/IFSP Apoio Financeiro: Prodocência / Capes
Leia maisIntrodução à Plataforma ARDUINO
MINICURSO Introdução à Plataforma ARDUINO PET Mecatrônica/BSI Geruza M. Bressan O que é um microcontrolador (MCU)? É um computador em um chip Processador Memória Entrada/Saída Controla ações e funções
Leia mais1º minicurso de Arduino no IFUSP 4 a 22 de maio de 2015 Prof. Alexandre Suaide
1º minicurso de Arduino no IFUSP 4 a 22 de maio de 2015 Prof. Alexandre Suaide Arduino é uma plataforma eletrônica para prototipagem flexível, de baixo custo, fácil de usar e aberta. Inscrições abertas
Leia mais- Trabalho Prático de Algoritmos e Programação usando Robô Arduino -
Disciplina: Algoritmos e Programação Vale 1.5 para G2 Profa. Flavia Pereira de Carvalho - Trabalho Prático de Algoritmos e Programação usando Robô Arduino - Imagem do Robô com Legendas Dicas de código
Leia maisPCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca
PCS-2529 Introdução aos Processadores Prof. Dr. Paulo Sérgio Cugnasca 1 2 Existem 4 esquemas diferentes de E/S possíveis, cada um se aplicando em uma determinada situação. E/S Programada. E/S Acionada
Leia maisARDUINO BÁSICO E T A P A 1 O QUE É ARDUINO? Prof. Amadeu Zanon Neto
E T A P A 1 O QUE É ARDUINO? Segundo o site WIKIPEDIA, Arduino é: É um microcontrolador de placa única e um conjunto de software para programá lo. O hardware consiste em um projeto simples de hardware
Leia maisALGORITMOS, ARQUITETURA E ARDUINO
INOVAÇÃO TECNOLÓGICA E EMPREENDEDORISMO ALGORITMOS, ARQUITETURA E ARDUINO Prof. Dr. Daniel Caetano 2017-2 Objetivos Rever alguns conceitos iniciais de algoritmos Tomar contato com alguns conceitos de arquitetura
Leia maisROBÓTICA 1 INTRODUÇÃO A PROGRAMAÇÃO NO ARDUINO
ROBÓTICA 1 INTRODUÇÃO A PROGRAMAÇÃO NO ARDUINO O QUE VIMOS AULA PASSADA? REVISÃO RÁPIDA Hardware vs Software Eletricidade básica Lei de Ohm Um pouco sobre o Arduino Materiais Importantes Entradas do Arduino
Leia maisMicrocontroladores PROF. ME. HÉLIO ESPERIDIÃO
Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO Microprocessador É um circuito integrado que contém milhares, ou mesmo milhões, de transistores. Os transistores trabalham juntos para armazenar e manipular
Leia maisMicroprocessadores CPU. Unidade de Controle. Prof. Henrique
Microprocessadores CPU Unidade de Controle Prof. Henrique Roteiro Registradores; Unidade de Controle Níveis de Complexidade Introdução Um sistema microprocessado conta com diversos dispositivos para um
Leia maisSEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga
SEL-614 MICROPROCESSADORES E APLICAÇÕES Prof: Adilson Gonzaga HISTÓRICO Microprocessador Circuito integrado ( chip ) capaz de executar instruções. 1971 Intel Corporation lançou no mercado o microprocessador
Leia maisCANAL ANALÓGICO
CANAL ANALÓGICO CANAL ANALÓGICO (Introdução) Variáveis analógicas apresentam variação modular em função do tempo, como por exemplo a temperatura, pressão, nível, etc. Para trabalhar com estas variáveis,
Leia maisSistemas Operacionais de Tempo Real - Teclados Matriciais
1 / 27 Sistemas Operacionais de Tempo Real - Teclados Matriciais por Henrique Frank W. Puhlmann Introdução Chaves eletromecânicas são uma forma quase primitiva de interface entre um sistema eletrônico
Leia maisProgramação em Linguagem C
Programação em Linguagem C UNIDADE 1 Unidade I Nesta unidade aprenderemos: escrever o código no computador e transferir para o Arduino. ligar e desligar um pino; utilizar o delay (tempo); ler um pino para
Leia maisSistemas Reativos. Interrupções em microcontroladores (baseado no Atmega328p Arduino Uno)
Sistemas Reativos Interrupções em microcontroladores (baseado no Atmega328p Arduino Uno) Noemi Rodriguez noemi@inf.puc-rio.br Adriano Branco abranco@inf.puc-rio.br Interrupção no Microcontrolador Mecanismo
Leia maisInterrupções 8051 Porta Serial
Interrupções 8051 Porta Serial Disciplina de Microcontroladores Prof. Ronnier Prof. Rubão Finalidade Introduzir ao aluno a ideia de que se possa interromper o programa, de forma temporária, e desta vez
Leia maisEx.: Rotinas de tempo
Ex.: Rotinas de tempo ORG 0000h PADRAO EQU 11111110b PORTA EQU P1 VBASE EQU 0800h mov r0,# PADRAO inicio: mov PORTA,r0 ;***********TEMPO DE 1S ************ mov dptr,#vbase ; Tt= 2T espera1: mov r1,#0f2h
Leia maisAnatomia do Arduino Bootloader
Anatomia do Arduino Bootloader Fábio Olivé (fabio.olive@gmail.com) Tópicos A plataforma Arduino A família Atmel AVR ATmega Padronização da configuração e uso do ATmega Detalhando o ATmega328P Especificações
Leia maisPlano de Trabalho Docente Ensino Técnico
Plano de Trabalho Docente 2015 Ensino Técnico Etec Etec: Monsenhor Antônio Magliano Código: 088 Município: Garça Eixo Tecnológico: Controle e Processos Industriais Habilitação Profissional: Nível Médio
Leia maisProjeto No. 19 Contador Binário com Chave Rotativa
Projeto No. 19 Contador Binário com Chave Rotativa O objetivo deste projeto é utilizar três LEDs para mostrar os números entre 0 e 7 no sistema de numeração binário, ou seja 0 (Desligado - LOW) ou 1 (Ligado
Leia maisTutoriais PET-Tele. Introdução à Amostragem de Sinais com o kit Arduino (Versão: A2016M06D21)
Universidade Federal Fluminense UFF Escola de Engenharia TCE Curso de Engenharia de Telecomunicações TGT Programa de Educação Tutorial PET Grupo PET-Tele Tutoriais PET-Tele Introdução à Amostragem de Sinais
Leia mais1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0
Capítulo 1 Interrupções 1.1 O que são interrupções? Como o nome sugere interrompe a execução normal e exige atenção urgente da CPU. São eventos não previsíveis e assim não pode ser oferecido tempo de CPU
Leia maisUniversidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.
Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas
Leia maisof Arduino Slide: Bruno Aricó
S of Arduino Slide: Bruno Aricó https://github.com/brunoarico/workshopneu https://goo.gl/rprngs O que veremos: Registradores; Interrupções Externas; Referência de tensão externa; EEPROM; Pequena oficina
Leia maisPor Fernando Koyanagi 1
Por Fernando Koyanagi 1 Características principais Chip com Wi-Fi embutido : padrão 802.11 B/G/N, operando na faixa de 2.4 a 2.5GHz Modos de operação : Client, Access Point, Station+Access Point Microprocessador
Leia maisLista de Exercícios 2
Conceitos envolvidos: a) Contadores e Temporizadores b) Interface serial RS232 c) Interrupções Lista de Exercícios 2 1. Fazer um contador hexadecimal que coloque o valor de contagem na porta P1 em intervalos
Leia maisIntrodução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 01
Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE Núcleo de Arte e Tecnologia julio lucio martin Aula 01 O que vamos entender? eletrônica corrente elétrica: voltagem resistência intensidade
Leia maisEstrutura Básica da Linguagem Arduino
Governo do Estado de Pernambuco Secretaria de Educação Secretaria Executiva de Educação Profissional Escola Técnica Estadual Professor Agamemnon Magalhães ETEPAM Estrutura Básica da Linguagem Arduino Jener
Leia maisENG-1450 Microcontroladores e Sistemas Embarcados. Lab02 Apresentação Kit PicGenios Interrupção e Timers
ENG-1450 Microcontroladores e Sistemas Embarcados Lab02 Apresentação Kit PicGenios Interrupção e Timers Atividades 1. Executar tarefas da aula anterior no kit 2. Exemplo1: 1.Acionar o LED por interrupção
Leia maisCapítulo 14. Expandindo as portas de comunicação 8031 com a PPI Interface PPI 8255
Capítulo 14 Expandindo as portas de comunicação 8031 com a PPI 8255 Como discutido ao longo do livro, o 8031 deixa 8 bits para controle genérico de dispositivos. Em situações nas quais se necessita um
Leia maisProgramação Básica em Arduino Aula 2
Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Site: http://oficinaderobotica.ufsc.br/ Canal: Oficina de Robótica UFSC https://www.youtube.com/channel/uc4oojsp2fhfkdrnj0wd7iag
Leia maisLista de Exercícios 1
Conceitos envolvidos: a) Contadores e Temporizadores b) Interface serial RS2322 c) Interrupções Lista de Exercícios 1 1. Fazer um contador hexadecimal que coloque o valor de contagem na porta P1 em intervalos
Leia maisTemporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso
SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos
Leia mais29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina
SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Temporização da CPU Todos os Microcontroladores da família MCS-5 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos
Leia maisSensor óptico em quadratura: leitura via Arduino
Ministério da Educação Universidade Tecnológica Federal do Paraná Campus Cornélio Procópio Coordenação de Eletrotécnica Sensor óptico em quadratura: leitura via Arduino Autor: Prof. Alessandro N. Vargas
Leia maisTemporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso
Temporização Interrupções Prof: Evandro L. L. Rodrigues Rotinas de Atraso Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar
Leia maisComunicação Serial II. Prof. Clayrton Henrique Microprocessadores Aula 31 Rev.03
Comunicação Serial II Prof. Clayrton Henrique Microprocessadores Aula 31 Rev.03 Roteiro Registradores Especiais Configuração: Modo 0 Modo 1 Modo 2 Modo 3 Exemplos Referências SCON.7: SM1 SCON.6: SM0 Modo
Leia maisEXPERIÊNCIA 5: IMPLEMENTAÇÃO DE UM CRONÔMETRO COM INTERRUPÇÃO
EXPERIÊNCIA 5: IMPLEMENTAÇÃO DE UM CRONÔMETRO COM INTERRUPÇÃO Autores: Prof. Dr. Marco Túlio Carvalho de Andrade, Prof. Dr. Carlos Eduardo Cugnasca, Prof Dr. André Riyuiti Hirakawa, Prof. Dr. Paulo Sérgio
Leia maisO que você pode fazer com o Arduino
O que é Arduino O Arduino foi criado em 2005 por um grupo de 5 pesquisadores : Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis. O objetivo era elaborar um dispositivo que fosse
Leia maisArduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner
Arduino Single-board microcontroller Microcontrolador Placa CPU, Memória, Serial, I/O Conectores, Fonte, USB, LEDs IDE Compilador, Bibliotecas, Editor, Burner http://arduino.cc/en/reference/homepage Shields
Leia maisSSC510 Arquitetura de Computadores 1ª AULA
SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura
Leia maisLABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS II. Filtros FIR utilizando matlab e arduino duo LAB 1 (LPF)
Fase (graus) Módulo da resposta em frequência METAHEURO LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS II Filtros FIR utilizando matlab e arduino duo LAB 1 (LPF) Nota: O processador ARM do arduino duo
Leia maisAula 10 Microcontrolador Intel 8051 Parte 1
Aula 10 Microcontrolador Intel 8051 Parte 1 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 0415 Microcontroladores Grupo de Sistemas Digitais n Microcontrolador é o nome
Leia maisINTRODUÇÃO: MICROCONTROLADORES
INTRODUÇÃO: MICROCONTROLADORES MICROCONTROLADOR X MICROPROCESSADOR Baixa capacidade de processamento Freq. Operação em MHz Custo de R$ 7,00 a 30,00 Aplicações mais restrita Alta capacidade de processamento
Leia maisELE Microprocessadores I
ELE 1078 - Microprocessadores I AULA 13 Conjunto de Instruções do Microprocessador 8085A - Entrada e Saída (I/O) - 13.1 - Grupos de Instruções As instruções no 8085 são distribuídas em 5 grupos: Grupo
Leia mais14/3/2016. Prof. Evandro L. L. Rodrigues
SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Tópicos do curso Conceitos básicos - Aplicações e utilizações dos microcontroladores
Leia maisLaboratório de Microprocessadores e Microcontroladores
Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 2: Interrupções Externas e Relés Alunos: Matrícula:
Leia maisAcendendo o Led com Arduino.
Acendendo o Led com Arduino. Nesse tutorial aprenderemos a ligar e desligar um Led com o Arduino. Para isso utilizaremos os seguintes componentes e ferramentas: Arduino Figura 1 Arduino UNO. Placa de prototipação
Leia maisOficina de Programação utilizando a plataforma Arduino
Oficina de Programação utilizando a plataforma Arduino Bianca Alessandra Visineski Alberton bi.alberton@gmail.com Paulo Nesello Künzel kruger paulo@hotmail.com Programa de Educação Tutorial Computando
Leia maisPlano de Trabalho Docente Ensino Técnico
Plano de Trabalho Docente 2016 Ensino Técnico Plano de Curso nº 95 aprovado pela portaria Cetec nº 38 de 30/10/2009 Etec Paulino Botelho Código: 091 Município: São Carlos Eixo Tecnológico: Controle e Processos
Leia mais