Buscar

Programação em C para Arduino

Prévia do material em texto

����������
�
Arduino!
Programação_Parte 2
11 – Alterando o programa.
O esquema ao lado mostra 
como interligar os 
componentes. 
Os LEDs serão conectados às 
portas 2 e 3 do Arduino.
E para ligar dois LEDs?
����������
�
11 – Alterando o programa.
Com o circuito 
montado na 
matriz de 
contatos, 
podemos nos 
preocupar 
com a 
programação.
11 – Alterando o programa.
Comece pelo nome do programa.
// Dois LEDs.
����������
�
11 – Alterando o programa.
Variáveis globais.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
11 – Alterando o programa.
Agora o setup.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ }
����������
�
11 – Alterando o programa.
Agora o modo do pinos.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}
11 – Alterando o programa.
E o loop.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
} void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
}
����������
�
11 – Alterando o programa.
Pronto! 
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
} void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
}
Grave o programa no µC. 
Execute! 
Funcionou? 
11 – Alterando o programa.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
} void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
}
?
����������
�
11 – Alterando o programa.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
} void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
}
11 – Alterando o programa.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}
void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
}
Para o led1, o único 
comando dado foi para que 
ele acenda.
����������
	
11 – Alterando o programa.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}
void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led1,LOW);
digitalWrite(led2, LOW);
delay(500);
}
Para o led1, o único 
comando foi para que ele 
acenda.
É necessário mandar o 
led1 apagar.
11 – Alterando o programa.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}
void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led1,LOW);
digitalWrite(led2, LOW);
delay(500);
}
Para o led2, é necessário 
mandar acender primeiro.
����������
11 – Alterando o programa.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
} void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led1,LOW);
digitalWrite(led2.HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
}
Acender e apagar para o 
led2.
11 – Alterando o programa.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}
void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led1,LOW);
digitalWrite(led2.HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
}
Testando!
����������
�
11 – Alterando o programa.
// Dois LEDs.
Int led1 = 2;
Int led2 = 3;
void setup()
{ pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}
void loop()
{ digitalWrite(led1,HIGH);
delay(500);
digitalWrite(led1,LOW);
digitalWrite(led2.HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
}
Experimente!
Modifique o tempo 
em que os LEDs
permanecem acesos 
ou apagados.
// Resolvendo exercícios.
Ex-1: Conectando LEDs. 
����������
��
// Resolvendo exercícios.
Ex-2: Conectando LEDs. 
// Resolvendo exercícios.
Ex-3: Conectando LEDs. 
����������
��
12 – Adicionando variáveis
Nestes últimos exercícios, para modificar o tempo, era 
preciso fazê-lo em cada linha. 
É possível simplificar o processo e para isso basta 
criar uma nova variável que pode ser chamada 
de “tempo”.
12 – Adicionando variáveis
// Melhorando o código.
Int led1 = 2;
Int tempo = 100;
void setup()
{ pinMode(led1,OUTPUT);
}
void loop()
{ digitalWrite(led1,HIGH);
delay(tempo);
digitalWrite(led2, LOW);
delay(tempo);
}
Neste exemplo, a variável 
tempo foi criada e atribuiu-se 
a ela o valor 100.
Na função delay(), em vez de 
escrever o valor do tempo, 
escreve-se o nome da função.
����������
��
// Resolvendo exercícios.
Ex-4: Acrescentando variáveis. 
// Resolvendo exercícios.
Ex-5: Acrescentando variáveis. 
����������
��
13 – Operadores.
Operadores são empregados para definir ações.
São utilizados para construir 
expressões aritméticas, lógicas e de 
comparação, entre outras.
13 – Operadores.
+ soma: a + 3
== comparação: y==b
= atribuição: x = a
|| OR: z > 0 || c < 2
& AND bit a bit : 0011 & 0001
����������
��
14 – Ligando um botão e lendo um botão.
Botões, chaves, interruptores são muitos utilizados .
Para utilizar um botão é 
necessário ligar em série 
com ele um resistor.
Neste caso, 
utilizaremos o resistor 
com pull-up.
14 – Ligando e lendo um botão.
Botões, chaves, interruptores são muitos utilizados .
Sem pressionar o botão, o pino do 
microcontrolador que o arranjo 
estiver conectado receberá nível 1.
Quando o botão for pressionado, o 
pino do microcontrolador receberá 
nível 0.
����������
��
14 – Ligando e lendo um botão.
Antes de montar, escreva o programa.
Vamos acrescentar um 
botão para controlar 
quando o Led deve piscar.
14 – Ligando e lendo um botão.
Iniciamos dando um 
nome ao programa.
//Botão acionando um LED
����������
��
14 – Ligando e lendo um botão.
No pino 6 vamos ligar 
um botão. 
//Botão acionando um LED
int BOTAO = 6 ;
Então começamos por 
declarar a variável 
BOTAO, do tipo int e 
relacioná-la ao pino 6.
14 – Ligando e lendo um botão.
No pino 5 vamos ligar 
LED.
//Botão acionando um LED
int BOTAO = 6 ;
int LED = 5 ;
A variável led será 
declarada em seguida e 
estará conectado ao pino 
5.
����������
�	
14 – Ligando e lendo um botão.
Uma variável para dizer o 
estado inicial do botão 
deve ser criada.
//Botão acionando um LED
int BOTAO = 6 ;
int LED = 5 ;
int val = 0; 
Declara-se então a 
variável val condicionando 
o estado inicial da variável 
que é 0.
14 – Ligando e lendo um botão.
Inicia-se o ciclo setup().
//Botão acionando um LED
int BOTAO = 6 ;
int LED = 5 ;
int val = 0; 
void setup()
Nesta parte se define se 
os pinos são de entrada 
ou de saída.
����������
�
14 – Ligando e lendo um botão.
Escreva sempre entre 
chaves { }.
//Botão acionando um LED
int BOTAO = 6 ;
int LED = 5 ;
int val = 0; 
void setup(){
pinMode(LED,OUTPUT);
O LED é uma saída.
14 – Ligando e lendo um botão.
//Botão acionando um LED
int BOTAO = 6 ;
int LED = 5 ;
int val = 0; 
void setup(){
pinMode(LED,OUTPUT);
pinMode(BOTAO,INPUT);
}
O botão é uma entrada.
����������
��
14 – Ligando e lendo um botão.
Inicia-se o ciclo loop.
//Botão acionando um LED
int BOTAO = 6 ;
int LED = 5 ;
int val = 0; 
void setup(){
pinMode(LED,OUTPUT);
pinMode(BOTAO,INPUT);}
void loop(){
14 – Ligando e lendo um botão.
A variável val recebe o 
valor lido no botão.
//Botão acionando um LED
int BOTAO = 6 ;
int LED = 5 ;
int val = 0; 
void setup(){
pinMode(LED,OUTPUT);
pinMode(BOTAO,INPUT);
}
void loop(){
val=digitalRead(BOTAO);
}
����������
��
14 – Ligando e lendo um botão.
Agora, o led recebe o 
estado guardado na 
variável val.
//Botão acionando um LED
int BOTAO = 6 ;
int LED = 5 ;
int val = 0; 
void setup(){
pinMode(LED,OUTPUT);
pinMode(BOTAO,INPUT);
}
void loop(){
val=digitalRead(BOTAO);
digitalWrite(LED,val);
}
// Resolvendo exercícios.
Ex-6: Ligando um botão. 
����������
��
// Resolvendo exercícios.
Ex-6: Ligando um botão. 
Como está a 
chave?
Estado Lógico da 
chave
Estado do LED
Estado lógico 
do LED
Sem ser 
pressionada
Sendo Pressionada
// Resolvendo exercícios.
Ex-7: Ligando um botão 2 
����������
��
// Resolvendo exercícios.
Ex-8: Ligando 2 botões. 
Acrescente ao circuito mais um botão.
Cada botão deve acionar 1 led diferente.
// Resolvendo exercícios.
Ex-9: Ligando botões com pull-up interno. 
Modifique o circuito do Ex-8 o resistor de pull-up
da entrada 6.
Modifique o programa para ativar o pull up.
����������
��
16 – Resolvendo operações lógicas.
Podemos utilizar operadores lógicos para escrever 
expressões lógicas.
byte Botao1 = 6;
byte Botao2 = 7;
byte LED = 2;
byte val1 = 0;
byte val2 = 0;
byte resultado = 0;
16 – Resolvendo operações lógicas.
Podemos utilizar operadores lógicos para escrever 
expressões lógicas.
void setup (){
pinMode (LED,OUTPUT);
pinMode(Botao1,INPUT);
pinMode(Botao1 , INPUT_PULLUP);
pinMode(Botao2,INPUT);
pinMode(Botao2 , INPUT_PULLUP);
����������
��
16 – Resolvendo operações lógicas.
Podemos utilizar operadores lógicos para escrever 
expressões lógicas.
}
void loop () {
val1=digitalRead(Botao1);
val2=digitalRead(Botao2);
resultado = val1&&val2;
digitalWrite(LED,resultado);
}
// Resolvendo exercícios.
Ex-10 Operações lógicas. 
Modifique o programa anterior acrescentando 
as operações lógicas OR, XOR e NOT entre dois 
botões e o resultado mostrado nos Leds 3, 4 e 5.
����������
��
// Resolvendo exercícios.
Ex-11 Operações lógicas. 
Elabore um programa para cada expressão.
•S1 = (A.B) + (/A . /B) 
•S2 = /B + (/A . B)
•S3 = {/(A + B) + (/A . B)}
•S4 = A ^ B + /A
Fazendo Barulho!
A função tone(), gera uma onda quadrada com 50% 
de ciclo-ativo, de frequência definida no programa.
Pode ser usado:
tone(pin,frequência) ou 
tone(pin,frequência,duração) 
- frequência em Herz. 
- duração em milisegundos. 
����������
��
Fazendo Barulho!
Utilizando o Buzzer do kit, elabore um 
programa para que o buzzer toque com 
frequências diferentes sempre que um dos 
LEDs estiver aceso.
Fazendo Barulho!
//Fazendo Barulho! cbsf
int led=8;
int tom=5;
int led2=9;
void setup()
{
pinMode(5,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}
void loop()
{
{
tone(5,1000,1000);
digitalWrite(8,LOW);
delay (500);
digitalWrite(8,HIGH);
delay (500);
}
{
tone(5,500,1000);
digitalWrite(9,LOW);
delay(500);
digitalWrite(9,HIGH);
delay(500);
}
}
����������
�	
// Resolvendo exercícios.
Ex- EXTRA. 
�����������	
���
��	
	��
�������
�
��
��������������	�	��	�	�����
����	��
���������	���
�
// Resolvendo exercícios.
Ex- EXTRA .... o retorno. 
�����������	
���
��	
	��
�������
�
��
��������������	�	��	�	�
�
��
�

Continue navegando