Baixe o app para aproveitar ainda mais
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. ����������� ��� �� �� ������� � �� �������������� � �� � � � �� �
Compartilhar