Mostrando postagens com marcador exercícios. Mostrar todas as postagens
Mostrando postagens com marcador exercícios. Mostrar todas as postagens

Função MAP ()

Como o próprio nome diz, a função map() do Arduíno faz o mapeamento de um intervalo numérico em outro intervalo numérico desejado. Conforme figura 1, notamos que  um intervalo numérico que vai de um valor mínimo até um valor máximo, será mapeado para um novo valor de saída definido pelo programador.
Figura 1. Adicionar legenda
A sintaxe da função map() é dado por:

map (x, IN_min, IN_max, OUT_min, OUT_max);

onde temos:

X               - Variável com valor a ser convertido.
IN_min     -  Limite inferior do intervalo de entrada
IN_max    -  Limite superior do intervalo de entrada
OUT_min - Limite inferior do intervalo de saída
OUT_max- Limite superior do intervalo de saída

Essa função pode ser interessante quando queremos modular um pulso usando PWM (se não conhece PWM clique aqui) que será controlado por um potenciômetro. Considerando que os valores medidos no potenciômetro podem variar de 0 a 1023 para realizar o mapeamento será necessário implementar o seguinte código:

void loop()
{
  
  potenciometro = analogRead(5); //Leitura do analógico onde o potenciômetro esta ligado
  
  Converte= map(potenciometro,0,1023,0,255);
  
  analogWrite(10,Converte); //Escrita no pino digital com PWM
} 

A implementação do código acima pode ser visto no vídeo clicando na figura abaixo. Neste vídeo, iremos controlar a velocidade de um motor DC com um potenciômetro.  

 Exclusão mutua com Arduíno



Não esqueça do like do video e de curtir nossa pagina no facebook no link abaixo:

Introdução a comunicação Serial

Em telecomunicações e ciência da computação, comunicação série é o processo de enviar dados um bit de cada vez, sequencialmente, num canal de comunicação ou barramento. Para ocorrer uma transmissão é necessário que o receptor e o transmissor estejam sincronizados, ou seja, o emissor deve definir uma taxa de transmissão e acordar essa taxa com o receptor para que os bits transmitidos sejam interpretados corretamente pelo receptor. A figura 1 mostra a transmissão da sequência numérica 00111011 através de uma comunicação serial onde cada bit tem um tempo bem definido.

Figura 1. Representação da transmissão serial do bit 00111011 
Quando usamos o Arduino para uma comunicação serial é necessário configurar essa taxa de Transmissão  conhecida com Baud rate que indica o número de bits transmitidos por Segundo. Por exemplo, 9600 baud equivale a 9600 bits por Segundo.

Para configurar o uso da serial no Arduino e definir o baud rate basta usar o comando Serial.begin na função void setup conforme mostra o trecho do código abaixo.

void setup() 
{
  Serial.begin(9600);  // inicializando comunicação serial com Baud rate de 9600
}

Para realizar os primeiros programas usando a serial, vamos usar os comandos print e read:

Função Serial.print

Função Serial.print é usada para envio de informações do Arduino para o PC e a sintaxe é dada por:

Serial.print(Argumento);




onde argumento pode ser um texto (sempre enviado entre "") ou uma variavel.

Exemplo1: Envia de texto do Arduino via porta serial


void setup() 
{
  Serial.begin(9600);  // inicializando comunicação serial com Baud rate de 9600
}

void loop() 
{
  Serial.print("Ola Funalo! Seja bem-vindo ao maravilhoso mundo do Arduino");
}

O resultado do código acima pode ser vista no serial monitor conforme figura 2.
Figura 2. Tela do Serial monitor - Envio de dados do Arduino para o computador
Exemplo2: Envia uma variável do Arduino via porta serial:
........
void loop() 
{
  int x;
  Serial.print(x);
}

Função Serial.read

Função Serial.readé usada para envio de informações do PC para o Arduino onde a sintaxe é dada por:

Serial.read();

onde o valor enviado pelo PC deve ser armazenado numa variavel.


Exemplo3: Envia uma variável do Arduino via porta serial


void setup() 
{
  Serial.begin(9600);  // inicializando comunicação serial com Baud rate de 9600
}

void loo() 
{
  int x;
  Serial.print(x);
}

Alem dos comando basicos comentados acima, o Arduino possui diversas funções utilizadas em porta serial que podem ser estudadas diretamente na pagina do Arduino clicando aqui

Com base nessa breve introdução faça os exercícios propostos.... 

Exercício 1- Faça um programa faça o LED piscar com uma frequência de 0,5 Hz., cada vez que o LED piscar, uma mensagem deve ser enviada para a serial informando "LED ligado" ou LED desligado". O LED deve ser polarizado como mostrando na postagem anterior. Não lembra? Clique aqui.

Figura 3. Circuito ligando 1 LED atraves da porta serial


Exercício 2- Usando o mesmo circuito da figura 3, faça um programa de acenda um LED via porta serial. Para acender o LED, o usuário deve digitar a letra "A" no monitor serial.

Exercício 3- Usando o mesmo circuito da figura 3, faça um programa de acenda e apague um LED via porta serial. Para acender o LED, o usuário deve digitar a letra "A" e para apagar o LED, o usuário deverá digitar "B" no monitor serial.

Exercício 4- Agora faça um programa que controle 3 Led's via porta serial onde as letras "a","b" e "c" irão ligar os Led's (cada Led será aceso por uma letra) e as letras "z", "x" e "c" irão apagar os Led's.


Desafio: Agora faça um programa que controle 3 Led's via porta serial onde as letras "a","b" e "c" irão ligar os Led's (cada Led será aceso por uma letra) e as letras "x", "y" e "z" irão apagar os Led's.
Cada vez que um led foi ligado ou desligado o programa deve informar via serial

Figura 4. Circuito que deve ser implementado no desafio através da porta serial
Desafio 2: Agora além de avisar qual Led esta sendo ligado ou desligado, o Arduino deve informar quantos Led's estão ligados naquele momento.
Obs.Não considerar que o usuário tentará acender um Led já aceso ou apagar um Led já apagado.

Desafio 3: Agora além de avisar qual Led esta sendo ligado ou desligado, o Arduino deve informar quantos Led's estão ligados naquele momento. O sistema deve ser inteligente o suficiente para não mostrar o numero de Led's ligado errado quando um usuário enviar um comando para apagar um Led que já está apagado.

Ainda ta com duvida, ou que saber a resposta do desafio, curta nossa pagina no facebook no link abaixo e poste sua duvida lá.


Primeiros programas em Arduino - Trabalhando com botões

Nestes exercícios iremos trabalhar com botões simulando a entrada de dados. Quando usamos botões, muitas configurações podem ser implementadas dependendo da necessidade e para melhor entendimento do assunto, vamos entender o funcionamento dos botões.
                                                                              Os botões são chaves simples que permitem ou não a passagem de corrente em um determinado circuito eletrônico. Com dois estados de operação, quando o botão não está pressionado o circuito não há passagem de corrente. Quando o botão é pressionado, o circuito que o botão faz parte é fechado e há uma passagem de corrente. A figura ao lado exemplifica o funcionamento descrito acima e a figura 1 abaixo mostra diferentes tipos de botões que podem ser utilizado em circuitos microcontrolados e como são suas ligações internas.
Figura 1. Esquema de botão de 2 e 4 pinos de conexão.


Exercício 1- Faça um programa que acenda o LED enquanto o botão estiver pressionado. Para isso utilize o circuito do botão apresentado na figura 2. O LED deve ser polarizado como mostrando na postagem anterior. Não lembra? Clique aqui.


Figura 2. Circuito ligando 1 LED e um botão ao Arduíno.
Dispositivos necessários:
     - Resistor de 470 Ohm (led);
     - Resistor de 10 KOhm (chave);
     - Led;
     - Botão (on-off);

Exercício 2 - Usando o mesmo circuito acima (Figura 2), desenvolva uma solução onde ao apertar o botão o led deverá acender e manter seu estado até o botão ser pressionado novamente.
Figura 2. Circuito eletrônico usando 2 Led's e dois botões

Exercício 3- Usando o mesmo circuito do exercício 1 (Figura 2), desenvolva uma solução onde ao apertar o botão o led deverá acender e manter seu estado até o botão ser pressionado novamente.

Desafio:

Exercício 4- Utilize 3 led's simulando um semáforo simples. (3 segundo no verde, 1s no amarelo e 3s no vermelho) e faça com que o botão controle o funcionamento do semáforo. Botão ligado semáforo Verde e botão desligado semáforo vermelho.



Ainda ta com duvida, curta nossa pagina no facebook no link abaixo e poste sua duvida lá.


Comando de decisão em C

Após mostrar a importância do comando de decisão e desenvolver fluxogramas e pseudocódigos (clique nos links para acessar as postagens) com essa estrutura, baseado nos mesmos exemplos apresentados nas postagens anteriores iremos mostrar como programar em C as estruturas de decisão.
Como já mencionado em outras postagens, o comando de decisão é uma estrutura lógica condicional onde uma decisão é tomada baseada numa condição especifica cujo resultado sempre será Verdadeiro ou Falso. Se a condição for verdadeira, será executada uma instrução ou um conjunto de instruções. Se a condição não for verdadeira (Falsa), serão executadas outro conjunto de instruções.

Em C ou C++, o comando de decisão é representado pela sequencia de instruções discriminadas abaixo, onde o equivalente em fluxograma esta representado na figura 1.

Figura 11. fluxograma do comando de decisão.

if (condição
{
   instruções se condição for verdadeira
}
else
{
   instruções se condição não for verdadeira
}




No exemplo acima, a primeira linha de instrução é o if (condição) onde o programa irá tomar a decisão sobre qual bloco de instruções ele irá executar. Logo abaixo desta primeira instrução, temos todas a instruções que serão executadas pelo programa caso a condição seja verdadeira. Exceto quando temos uma unica instrução após a verificação do if, todos os comandos devem estar entre chaves "{   }". Na duvida sobre onde podemos ou não usar chaves, use chaves em todos os casos.
Já a instrução else marca o inicio do bloco de instruções que será executado caso a condição for falsa (senão for verdadeira). Na figura 2  temos dois exemplos de comando de decisão onde são mostradas as diferenças entre o uso ou não de chaves.
Figura 2. Exemplos de comando de decisão onde não é necessário usar chaves (Exemplo A) e quando é necessário o uso das chaves (Exemplo B)

* É IMPORTANTE lembrar que não é utilizado ";" nas instruções if e else.

Agora que já conhecemos a estrutura de decisão em C vamos desenvolver um programa onde iremos analisar a média entre duas notas para saber se o aluno foi aprovado ou reprovado, Com base num fluxograma onde a média é calculada, a figura 3 indica o local exato onde o comando de decisão será inserido.
Figura 3. Seta vermelha indica onde devemos inserir o comando de decisão.
Definido onde o comando de decisão será inserido no fluxograma, será necessário definir a condição e quais instruções serão executadas caso a condição seja verdadeira ou falsa. Em nosso caso, a condição será a média menor que 6,0 (media < 6,0) logo se a condição "média< 6,0"  for verdadeira exibiremos a mensagem "Aluno reprovado", se a média não for menor que 6,0 (falso) exibiremos a mensagem "Aluno aprovado". Na figura 4 é possível ver o fluxograma que soluciona o problema descrito acima e ao lado é mostrado a solução em C para o mesmo problema.
Figura 4. Fluxograma do calculo de média .




#include <stdio.h>
#include <stdlib.h>
main()
{
float n1,n2,media;
scanf("%f",&n1);
scanf("%f",&n2);
        media=(n1+n2)/2;
if(media<6)
printf("Aluno Reprovado");
else
printf("Aluno Aprovado");
system("pause");
}







Notamos que na condição temos:   media < 6 onde o sinal "<"  é o que chamamos de operador relacional. A tabela I abaixo mostra os operadores relacionais usados nos comandos de decisão.
Tabela I, Operadores relacionais.
Os operadores relacionais podem ser usados de acordo com sua necessidade ou da maneira que o programador considerar mais conveniente, olhe nossa postagem sobre comando de decisão em fluxograma e confira que um mesmo exercício pode ser feito de maneiras diferentes.

Alguns casos podemos ter um comando de decisão onde a condição falsa é descartada, nestes casos temos o chamado desvio condicional simples e o fluxograma é representado como na figura 5.
Figura 5. Desvio condicional simples.





#include <stdio.h>
#include <stdlib.h>
main()
{
float n1,n2,X;
scanf("%f",&n1);
scanf("%f",&n2);
        X=(n1+n2)/2;
if> 0 )
printf("Numero Positivo");
system("pause");
}






Neste caso temos somente a condição verdadeira do comando if, caso o resultado a condição logica seja falsa o programa será finalizado sem executar outras instruções.

Atenção: O comando de decisão com desvio condicional simples sempre deve ter a condição verdadeira da condição apresentada no comando de decisão. Não é usual ter um comando de decisão com instruções somente na saída falsa do comando.

Agora que você já conhece o básico das estruturas de decisão, faça alguns testes. Seguem alguns exemplos:

- Colocar ";"  no final da instrução if e testar forçando condições verdadeiras e falsas;
- Utilizar mais de uma instrução e não usar chaves;
- Trabalhar com operadores lógicos e estruturas de de decisão.

Exercícios:

Para ajudar no seu estudo preparei 3 níveis de exercícios utilizando comando de decisão para acessar os exercícios mais simples clique aqui. Nesta lista só temos exercícios onde os comandos de decisão são usados de maneira individual.

Nesta segunda lista de exercícios que pode ser acessada clicando aqui, você irá trabalhar com comando de decisão composto, ou seja, será necessário utilizar um comando de decisão dentro de outro.

Se as duas primeiras listas foram resolvidas facilmente, acesse nosso Desafios clicando aqui e resolva os problemas aplicados propostos.

Ainda ta com duvida, curta nossa pagina no facebook no link abaixo e poste sua duvida lá.

Modelagem de dados - Abordagem Entidade Relacionamento

Exercício 1:  O que é o modelo conceitual? Por que utilizamos DER nessa modelagem ?

Exercício 2:
A clinica “cuide bem” é uma clinica especializada em dermatologia. Essa clinica que não possui um sistema de informática para auxiliar no dia a dia deseja contratar um profissional para automatizar seus processos e controlar melhor suas informações. Você como futuro profissional de Banco de dados deve ler o relato abaixo sobre o funcionamento da clinica e definir quais entidades deverão ser criadas para atender a demanda.
Nesta clinica todos os pacientes possuem um cadastro onde suas informações pessoais são guardadas e atualizadas quando necessário. Toda vez que um paciente novo comparece à clinica, um novo cadastro deve ser realizado. Assim como acontece com os pacientes, os administradores da clinica possuem um cadastro com informações dos quase 40 médicos contratados.
Como a clinica realiza alguns procedimentos como remoção de verrugas, peelings, laser e aplicação de toxina Botulínica e geralmente esses procedimentos são pagos à parte ou pelos planos de saúde, uma relação de todos os procedimentos e informações gerais referentes sobre os procedimentos são mantidas pelos administradores.
Não menos importante, como a clinica trabalha com diversos planos de saúde é necessário manter um cadastro de todos os planos de saúde com que a clinica trabalha ou mantem parceria.


Exercício 3:  Porque devemos criar um atributo identificador ? Justifique sua resposta.


Exercício 4:  Usando como base o exercício 2, defina os atributos identificadores para cada uma das entidades identificadas.


Exercício 5:  Nome e endereço podem ser entidade? Justifique sua resposta


Exercício 6:. Pense no seu trabalho e dê ao menos cinco exemplos dos conceitos básicos da abordagem ER apresentados: Entidade, Relacionamento e Atributo. Não é preciso relacionar todas e entidades.


Exercício 7: Uma escola deseja informatizar sua secretaria. Nesta escola é preciso guardar informações sobre os alunos, os professores e os curso da escola.  Todos alunos estão matriculados em um curso. Os professores lecionam nos cursos. Faça o DER do caso acima.


Exercício 8: Faça um DER para uma academia de ginástica, onde um instrutor pode ter vários alunos. 

- Cada aluno pode ter, um ou vários instrutores.

- Os alunos podem frequentar uma ou várias modalidades (tipos de atividade), sendo que cada modalidade pode ter várias turmas(ou não ter nenhuma).

- Uma turma tem somente uma modalidade. Um aluno deve estar matriculado e um ou mais turmas.

- Uma turma pode existir sem alunos matriculados, ou com muitos  alunos.

Lista de exercícios - Seleção de dados

Execute o script abaixo:

/*

create table produto(cod_prod number(5), 
nm_prod varchar2(20),
N_lote number(5), 
u_venda varchar2(10),
preco_custo number(6,2));

insert into produto values(1, 'STELLA ARTOIS', 123, 'unidade',3.4);
insert into produto values(2, 'KAISER', 23, 'unidade',1.4);
insert into produto values(3, 'cOCA COLA 2L', 123, 'litro',5.9);
insert into produto values(4, 'PICHANA', NULL, 'peça',53.2);
insert into produto values(5, 'LIMAO', NULL, 'kg',10);
insert into produto values(6, 'VODKA BIROSCOV', 223,'unidade', 0.99);
insert into produto values(7, 'Jack Daniels', 666, 'unidade',60.99);
insert into produto values(8, 'CostelinhA', NULL, 'Kg',25);
insert into produto values(9, 'SAL grosso', 99, 'unidade',2.1);
insert into produto values(10, 'ABACAXI', NULL, 'unidade',8.20);
insert into produto values(11, 'AlHo', 111, 'pct',5.3);
insert into produto values(12, 'KIWI', NULL, 'duzia',2.1);
insert into produto values(13, 'Maminha', NULL, 'KG',32.4);
insert into produto values(14, 'LiNgUiÇa', NULL, 'Kg', 12.1);
insert into produto values(15, 'Pão Frances', NULL, 'Kg',2.1);

*/

Com base no script acima, responda:

Questão 1 - Exiba todos os dados da tabela produto onde o nome do produto (nome_prod) deve estar em ordem alfabética .

Questão 2 - Exiba todos os nomes de produtos cadastrados na tabela produto exibindo o nome do produto (nome_prod) em ordem alfabética descendente e exibindo todos os caracteres do nome em letras maiúsculas.

Questão 3 - Exiba todos os nomes (nome_prod) de produtos cadastrados e seus respectivos preços de custo (preco_custo) tabela produto exibindo o nome do produto em ordem alfabética assim como todos os caracteres do nome em letra minúscula. O nome da coluna nome_prod também deve ser renomeada durante a exibição para PRODUTO.

Questão 4 - Exiba todos os nomes (nome_prod) de produtos cadastrados e seus respectivos preços de custo (preco_custo) da tabela produto onde a tabela deve ser ordenada do produto mais caro para o mais barato.

Questão 5 - O mercado onde o BD esta sendo analisado, está dando um desconto de 10% em todos os produtos. Devido a essa demanda, é preciso Exibir todos os nomes (nome_prod) de produtos cadastrados, seus respectivos preços de custo (preco_custo) e o valor do desconto. A coluna com o valor do desconto deve ser chamada "Valor do desconto" e o calculo será dado por:
desconto=preco_custo*0,1

Questão 6 - O mercado onde o BD esta sendo analisado, está numa país fictício onde o imposto sobre o produto é de 27,5%. Exiba todos os produtos(nome_prod) da tabela, seus respectivos preços (preco_custo) e o quanto de imposto deve ser pago em cada produto. O calculo do imposto é dado por:
imposto= preco_custo*0,275

Questão 7 - O mercado onde o BD esta sendo analisado, está numa país fictício onde o imposto sobre o produto é de 27,5%. Exiba todos os produtos(nome_prod) da tabela, seus respectivos preços (preco_custo) e o quanto de imposto deve ser pago em cada produto. Para facilitar a visualização, o valor do imposto de conter somente 2 casas depois da virgula usando regra de arredondamento.

Questão 8 - Qual a função do comando COMMIT?

Questão 9 - Analise a sequencia de "quase" instruções SQL abaixo:

insert into ....
insert into ....
insert into ....

savepoint A;

update....
insert into ....

savepoint B;

insert into ....
delete ....

savepoint C;

update ....
insert into ....
insert into ....

Usando a opção "Rollback to savepoint C;" a instrução onde um registro está sendo deletado foi cancela?
Quais instruções ficarão na cache do BD se o comando "Rollback to savepoint A;" for executado?

Questão 10 -  Exiba todos os nomes (nome_prod) e o tamanho da string dos nome dos produtos que tiver a palavra cola no nome.

Questão 11 -  Exiba todos os nomes (nome_prod) e o tamanho da string dos nome dos produtos que tiver a palavra cola no nome. Lembre que a pessoal que cadastrou o produto pode ter usado letras maiúscula e minusculas.  Faça a busca convertendo todas as letras para maiúsculas.


O gabarito dessa atividade está no link:

http://goo.gl/rCNBbr

Para dificultar a vida de voces, o trecho em vermelho do link esta criptografado usando cifra de Cesar e K= f (5).

Quer aprender mais sobre Criptografia? Acesse a video-aula: 

Duvidas, envie uma mensagem ou acesse nossa fanpage. 



Primeiras atividades de SQL

1ª Atividade de Banco de dados, Leia as instruções antes de iniciar a atividade.....

     - Todos os comandos devem ser gravados num arquivo SPOOL tipo TXT que será entregue para o professor
     -  A primeira linha do arquivo deve conter seu NOME e RA
     -  Não entregar o arquivo no prazo ou fora de formato irá diminuir sua nota!!!!!

Questão 1 - Criação de tabelas - Utilizando o SQLplus, crie duas tabelas baseando-se no dicionario de dados abaixo:
    * o atributo cidade deve conter um valor padrão (Default) definido por você... 





Para verificar a estrutura das tabelas use o comando:

describe nome_da_tabela


Questão 2 - Atividade de modificação de tabelas -  Conforme visto em sala de aula, promova as alterações descristas abaixo:

A) Excluir o atributo onde é armazenado o endereço do Cliente.

B) Incluir os campos logradouro (30 caracteres), complemento (10 caracteres) e CEP (8 digitos) na tabela onde estão armazenados os dados dos clientes.

C) Alterar o atributo onde o nome do cliente é armazenado reduzindo o numero de caracteres da string de 40 para 30.

D) Incluir o atributo fornecedor (18 caracteres) na tabela onde são armazenados os produtos.

E) Incluir o atributo CPF_cli (11 digitos) na tabela onde são guardadas as informações dos clientes.

F) Incluir o atributo data de nascimento (dt_nasc_cli) na tabela na tabela onde são guardadas as informações dos clientes.

Questão 3 - Inclusão de dados - Incluir os dados abaixo na tabela criada para armazenar os dados dos clientes. Usar a tabela abaixo como referencia:
Figura1. Dados que devem ser inseridos na base de dados.



Questão 4 -Inclusão de dados - Incluir o nome registro onde nome_cli será o seu nome e no campo Logradouro voce deverá inserir seu RA.

Questão 5 -Inclusão de dados - Incluir 6 registros completos na tabela criada para armazenar informações sobre produtos:

Questão 6 - Alteração de dados - Ao verificar os dados cadastrados, notamos que a cliente de código 107 (Defuntina) está aparecendo com o sexo masculino(representado pela letra M), altere o sexo da cliente em questão para F de feminino.

Questão 7 - Alteração de dados - O cliente "Zé Mané" mudou-se para a "Rua XXX,12 ap.3", favor atualizar as informações do cliente no banco de dados.

Questão 8 - Exclusão de dados - João Sem Sobrenome não é mais cliente de nossa empresa, favor excluir suas informações de nosso cadastro.

Questão 9 - Alter - João Sem Sobrenome não é mais cliente de nossa empresa, favor excluir suas informações de nosso cadastro.


Duvidas e sugestões acesse nossas redes sociais abaixo:


Programação em Arduíno - Trabalhando saída de dados

Primeiros programas em Arduino:

Exercício 1 - Para iniciar os estudos sobre programação em Arduino, vamos trabalhar o envio de dados para uma porta de saída onde um LED será instalado conforme indicado na figura 1.

Figura 1. Circuito para ligação de LED na saída do Arduino
Para criação desse circuito, será preciso os seguintes itens:

- LED
- Resistor 470 Ohm
Figura 2: Circuito elétrico usado para ligar o LED ao Arduino. 

Com base nesse circuito, pesquise e desenvolva um programa que:

Item a) Faça o LED piscar com uma frequência de 0,5 Hz.
Item b) Faça o LED piscar com uma frequência de 2 Hz.

Observação:  
      
                   f= 1/T
onde:
      f = frequência
      T= tempo


Exercício 2- Analise o circuito eletrônico da figura 3 e o código que foi programado no Arduino. O LED irá acender? Justifique sua resposta.
Figura 3. Circuito eletrônico para acender LED
Exercício 3- Ainda com base no código da Figura 3, Explique a função da instrução pinMode(led, OUTPUT); :

Exercício 4- Ainda c:

void setup() {

  pinMode(8, OUTPUT);
}

void loop() {
  digitalWrite(8, HIGH);  
}

Exercício 4- No exercício abaixo, vamos mudar um pouco o circuito eletrônico do LED, ao invés de ligar o cátodo do LED no GND, o cátodo será ligado em uma saída do Arduino conforme circuito da figura 4. Sabendo que para realizar a mesma função da GND o pino onde o cátodo estiver ligado teve ter LOW (nível lógico baixo) em sua saída, desenvolva a programação que acenderá o led.
Figura 4. Led ligado usando dois pinos de saída do Arduino

Exercício 5- Com  base no mesmo circuito acima, monte um circuito com dois LED's diferentes conforme apresenta a figura 5:
Figura 5: Circuito com 2 LEd's + Arduino

Com base nesse circuito, pesquise e desenvolva um programa que:

Item a)  Acenda os 2 LED.
Item b)  Faça os LED's acenderem em sincronia com uma frequência de 0,5 Hz.
Item c)  Faça os LED's  oscilarem alternadamente em qualquer frequência.

Exercício 6- Com  base no mesmo circuito acima, monte um circuito com três LED's diferentes e simule um semáforo de transito de três estágios (Cores Vermelha, amarela e verde).
Figura 6. Semáforo - Aparelho que será simulado me nosso circuito
*A cor verde deve permanecer ligada por 5 segundos, a amarela por 0,5 segundos e a vermelha por 2,5 segundos.

Desafio:

Exercício 7- Com  base no mesmo circuito acima, monte um circuito com seis LED's diferentes e simule um cruzamento com dois semáforos de transito de três estágios (Cores Vermelha, amarela e verde). Os dois semáforos são sincronizados para que quando um semaforo esteja aberto, o outro estará fechado. Para saber a sequencia de cores dos semáforos em cada estagio, observe a figura 7.
Figura 7. Funcionamento dos semáforos sincronizados.

Para verificar a implementação do projeto dos semáforos, clique na figura abaixo e veja um vídeo no youtube.....
Veja aqui como funcionam os semáforos

Para esse primeiro momento, esses problemas são suficientes, bons estudos e até o próximo encontro......




Ainda ta com duvida, curta nossa pagina no facebook no link abaixo e poste sua duvida lá.