Arduino: Temporizadores e Interrupcoes: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
(Criou página com '=Arduíno: Temporizadores e Interrupções= ==Comunicação Serial== ===Conceitos sobre comunicação serial e paralela=== ;Comunicação serial e paralela ===Comunica...')
 
Linha 1: Linha 1:
=Arduíno: Temporizadores e Interrupções=
=Arduíno: Temporizadores e Interrupções=


==Comunicação Serial==
==Temporizadores==


===Conceitos sobre comunicação serial e paralela===
O Arduíno possui várias funções que permitem implementar temporizadores e realizar medidas de tempo.
;[[Comunicação serial e paralela]]


===Comunicação Serial no Arduíno===
;Funções de pausa temporizada no programa:
delay(ms)
:Pausa o programa por uma quantidade de tempo especificada como parâmetro (em milissegundos). (onde 1000 milissegundos é 1 segundo).
delayMicroseconds(us)
:Equivalente ao delay() com tempo especificado microssegundos.


O '''Arduíno UNO''' possui uma '''porta serial''' ([https://www.arduino.cc/reference/en/language/functions/communication/serial/ '''Serial''']) (também referida como UART) e se comunica através dos pinos 0 ('''RX''') e 1 ('''TX'''), assim como com o computador via USB. Se você utiliza a comunicação serial não pode utilizar os pinos 0 e 1 como entradas e saídas.
;Funções para medidas de tempo:
 
millis()
Também é possível utilizar o '''monitor serial''', disponível na IDE do Arduíno, para comunicação bidirecional com uma placa Arduíno conectada em uma porta USB.
:Retorna o número de milissegundos decorridos desde que a placa Arduíno foi iniciada com o programa atual.  
 
micros()
Não é possível utilizar as '''portas seriais''' do '''Arduíno''' diretamente em uma comunicação com uma '''interface RS232''', pois esta usa tensões de -12 V e 12 V.
:Equivalente ao millis() retornando o número de microssegundos.  
 
;Outras placas Arduíno:  
*O '''Arduíno Leonardo''' usa a '''Serial''' exclusivamente para comunicação com a '''porta USB'''. Para '''comunicação serial''' nos pinos 0 (RX) and 1 (TX) deve-se utilizar a '''Serial1'''.
*O '''Arduíno Mega''' tem três portas de '''comunicação serial''' adicionais: '''Serial1''',  '''Serial3''' e  '''Serial3'''.


===Laboratório 1: Comunicação serial entre dois Arduínos===
===Laboratório 1: Comunicação serial entre dois Arduínos===

Edição das 15h12min de 9 de novembro de 2021

Arduíno: Temporizadores e Interrupções

Temporizadores

O Arduíno possui várias funções que permitem implementar temporizadores e realizar medidas de tempo.

Funções de pausa temporizada no programa
delay(ms)
Pausa o programa por uma quantidade de tempo especificada como parâmetro (em milissegundos). (onde 1000 milissegundos é 1 segundo).
delayMicroseconds(us)
Equivalente ao delay() com tempo especificado microssegundos.
Funções para medidas de tempo
millis()
Retorna o número de milissegundos decorridos desde que a placa Arduíno foi iniciada com o programa atual.
micros()
Equivalente ao millis() retornando o número de microssegundos.

Laboratório 1: Comunicação serial entre dois Arduínos

Monitor Serial
O monitor serial permite enviar dados do computador ao Arduíno pela interface serial USB.

Procedimentos:

  1. Carregar programa exemplo Arquivo/Exemplos/Communication/PhysicalPixel e acionar o led do pino 13 a partir de comandos H e L enviados pelo monitor serial.
Comunicação entre dois Arduínos

Procedimentos:

  1. Conectar com um par de fios os dois Arduínos através das portas seriais de ambos os microcontroladores: TX->RX e RX<-TX;
  2. Carregar no receptor o programa exemplo Arquivo/Exemplos/Communication/PhysicalPixel;
  3. Carregar no emissor o código abaixo;
  4. Observar a comunicação serial a partir do led piscando no receptor e também monitorar a troca de mensagens a partir do monitor serial.
 //emissor  
 int num = 0;
 void setup(){
  Serial.begin(9600);
 }
 void loop(){
  Serial.write('H');
  delay(2000);
  Serial.write('L');
  delay(2000);
 }
 }


Referências



Evandro.cantu (discussão) 09h51min de 9 de novembro de 2021 (-03)