Social Icons

Mostrando postagens com marcador PrimeirosPassos. Mostrar todas as postagens
Mostrando postagens com marcador PrimeirosPassos. Mostrar todas as postagens

2.1) Seu Primeiro Programa

 Essa é a tela do VisuALG comentado nos últimos posts como opção para desenvolvimento.


Onde encontramos uma ótima base para programação inicial...


Bom, para início vamos definir o que fazer, que problema resolver...

DICA: Crie uma pasta em um local de sua preferência com nome EXERC_EXEMPLO e vá posteriormente salvando cada exercício que fez a fins de estudo, organização e ajuda se precisar relembrar algo.

O QUE ESTIVER ASSIM É SEMPRE UM CÓDIGO
//comentários não compilados pelo computador

A mensagem acima só para exemplificar como separo código de texto normal!

Problema_Exemplo1: Mostrando uma Mensagem na tela :



algoritimo "Problema_Exemplo"//aqui define-se o nome do programa

var 
//aqui definimos o nome e tipo de cada variavél
exemplo : Caracter
inicio 
//aqui vai as intruções e comandos
escreva('Olá Mundo')




fimalgoritimo



Explicação dos Comandos Usados

escreva: Escreve uma mensagem na tela
escreval: Escreve uma mensagem e pula uma linha
Uso:

escreva('escreva aqui sua mensagem')

Tudo que estiver entre as ' ' não vai ser executado e sim apenas Mostrado.
Se você não colocar por exemplo as aspas e tivesse uma variavel para mostrar iria usar assim

escreva(variavel) ou
escreva('Mensagem que voce deseja escrever',variavel)


Perceba que a parte entre aspas é uma mensagem não compilada e sim mostrada e a variavel é o valor que deseja mostrar.


Vamos para o próximo?

Problema_Exemplo2 - Lêr um Nome e mostrar!


algoritimo "Problema_Exemplo"//aqui define-se o nome do programa

var 
//aqui definimos o nome e tipo de cada variavél
nome: Caracter

inicio 
//aqui vai as intruções e comandos
leia(nome)
escreva('O nome digitado Foi ',nome)
fimalgoritimo




Explicação dos Comandos Novos Usados:


leia: Lê algo digitado no teclado, espera o enter ser pressionado confirmando o fim da digitação e armazena como variavel pré definida.

No exemplo pede-se leia(nome) ele le a variável NOME declarada como caracter, então mesmo que você digite números como seu nome ele vai aceitar mas os números serão apenas demonstrativos pois não podem ser usados para contas pois a variável foi declarada como Caracter.


Resultados Obtidos:

O que obteve do código foi provavelmente  +- isso:

Visualg 2.5 Beta ...


Marcelo 

O Nome digitado foi Marcelo _ 



                                                                                   
htge
http://geekDevTeam.blogspot.com


Bom Basicamente você ja criou um programa, agora é esperar o próximo post e tentar variações em casa, brinque... tente fazer ler números,faça ele ler mais coisas criando mais variais e depois vá testando qualquer dúvida poste seu código nos comentários...

4.2) Brincando com LED's




Apresento para vocês uma série de exercícios para quem quer brincar com LEDs e Arduino.
Neste passo a passo é possível criar um pisca com LEDs e uma chave sinalizadora.


Montar na sua matriz de contatos:
-Atenção é importante notar que os LEDs devem estar ligados um paralelo com o outro e com polos opostos.
-O resistor pode ser de outro valor como 330R ou 470R, a modificação altera no brilho do LED.


Clicar na imagem para ampliar.

A1-Execute o programa abaixo: 



int ledPin1 =11;
int ledPin2 =10;



void setup() {

pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}



void loop()
{
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
delay(1000);

}

Comentário do programa:
-Como temos o LedPin1 em estado HIGH(LIGADO, 5V) e o LedPin2 no estado LOW(Baixo, 0V) temos um fluxo de elétrons em um sentido. Como o LED é um diodo e como tal permite apenas a passagem de corrente em um sentido(LED é polarizado) temos apenas um Led ligado.


A2-Execute o programa modificado abaixo: 


int ledPin1 =11;
int ledPin2 =10;



void setup() {

pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}



void loop()
{
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(1000);

}

Comentário deste novo código:
-Com a Mudança do HIGH para o LOW no LedPin1 e LedPin2 temos o outro Led ligado.

Vamos modificar mais um pouco o programa?

B1-Execute o programa abaixo:


int ledPin1 =11;
int ledPin2 =10;



void setup() {

pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}



void loop()
{
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
delay(1000);

digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(1000);

}


Comentário deste código:
Temos agora um pisca LED do tipo que tem em estacionamentos de carro. Em determinado tempo temos um fluxo de energia num sentido que liga um LED e em outro momento temos um fluxo em sentido contrário que liga o outro LED.

Vejam no vídeo como fica:










Vamos mais fundo?
Montar na sua matriz de contatos:
-Adicionar um botão e um resistor(pode ser de valor diferente).

Clicar na imagem para ampliar.




Pronto para modificar mais um pouco o programa?

C1-Execute o programa abaixo: 



int ledPin1 = 11;
int ledPin2 = 10;
int Botao1 = 7;
int val=0;


void setup() {

pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(Botao1, INPUT);
}



void loop()
{

val = digitalRead(Botao1);


if(val==LOW){

digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);

}
else{


digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);

}


}


Comentário deste novo código:
-É feita a leitura do botão e uma condição é criada:
1° Caso o botão não esteja pressionado o LedPin1 deve estar ligado. Fiz a combinação para que o "vermelho" esteja ligado neste caso.
2° Caso contrário o LedPin2 deve ficar ligado. Ajustei para que o "verde" esteja ligado neste caso.
Então quando não pressionamos o botão o LED Vermelho indica que está desligado e quando pressionamos o LED Verde indica que está ligado.
Trata-se então de uma chave que indica quando o seu aparelho está sendo usado ou não, basta implementar.







4) Primeiros Passos ( Pisca Led )

O iniciante precisa aprender o Bê-a-Bá para poder fazer suas peripécias. Pois bem senhores... apresento o tutorial mais básico para os aventureiros que queiram desbravar o mundo do Arduino.

Para Programação Seria o Famoso "Hello World"   ...(Google)

1-O básico da programação: 

Vamos dar uma olhada nessa "belezura"? Note os dois blocos distintos de instruções entre chaves:


void setup() {
// Escreva o código que será executado apenas uma vez.

}

void loop() {
// Escreva o código que será executado infinitas vezes

}

A função setup() é chamada quando o código(sketch) é executado.

Use-a para:
  • Iniciar variáveis.
  • O modo como os pinos devem operar: entrada(INPUT) ou saída(OUTPUT)
  • Bibliotecas.
  • Cabeçalhos
Mas atenção! Tudo o que estiver no setup() será executado apenas uma vez imediatamente após o microcontrolador ser energizado.
Caso o botão de reset que se encontra na placa do arduino for pressionada ou a energia cair o código será reinicializado e nessa condição especial o setup() novamente é executado.


A função loop() tem um propósito fundamental repetir infinitamente o que  está escrito. Bem... mas qual a finalidade disso? 
Ao repetir a mesma função o microntrolador nunca para de funcionar. Imagine como seria se ao digitar uma letra seu editor de texto parasse de funcionar e fosse preciso abri-lo novamente para escrever a outra letras da palavra? Ou após um carro passar num semáforo de trânsito as luzes não brilharem mais?  
Basicamente o loop() será o seu escravo e o setup() dirá como o escravo se comporta. 

Usa-se: // (duas barras invertidas) para fazer cometários na linha de código. O objetivo é deixar o mais claro possível para que terceiros possam entender. 
Tudo que é deixado como comentário será descartado no momento da gravação no microcontrolador.


O Primeiro Projeto com seu Arduino


Para este projeto será preciso um LED , um resistor e fios e uma matriz de contatos: 
 

Aprendendo um pouco sobre os compoentes:

O Led é um componente polarizado e deve ser corretamente conectado. Perceba que o polo positivo possui uma perna maior.
Alguns Leds apresentam o polo negativo com um chanfro(parte ligeiramente plana) no seu encapsulamento.
Temos no Arduino:
  • VCC(+) 
  • GND ou Ground como (-).
O LED é um diodo emissor de luz e ao alimenta-lo corretamente, permite o fluxo de energia apenas em um sentido.



O resistor é um componente que oferece resistência a passagem da energia elétrica. Ao combina-lo com outros componente pode-se fornecer a energia correta para alimentar componentes.
O filamento de tungstênio das lâmpadas incandescentes é uma resistência que transforma grande parte da energia que flui por ele em energia térmica e luminosa.  
As faixas de cores determina quanto é maior essa resistência.

A matriz de contatos possui apenas pontos interligados num sentido vertical. O que permite combinar e interligar os componetes rapidamente.
Veja na imagem abaixo duas fileiras independentes("A" e "B") com seus respectivos pontos interligados.

Os fios: existem modelos de fios que permitem uma fácil conexão. Dê preferência para estes modelos, pois vão garantir ligações seguras e a rapidez na montagem e manutenção do circuito.

A montagem do Projeto:


Agora que está munido destes componetes e de como eles operam monte o circuito abaixo:
Valores de resistores entre 220R e 10k podem ser usados.  

 Clicar na imagem para ampliar



Após a montagem copie o código abaixo e cole na interface de programação do arduino e faça o upload, após alguns segundos ele executará automaticamente:



void setup() {

pinMode(12, OUTPUT); //Declara que o pino 12 do arduino é de Saída. Vai mandar dados, energia...
}

void loop() {

digitalWrite(12, HIGH);  // Diz que o pino 12 do arduino está Ligado. Logo LED ON
delay(1000); // Espera por 1s

digitalWrite(12, LOW); //  Diz que o pino 12 do arduino está Desligado. Logo: LED OFF
delay(1000); // Espera por 1s
}


Comentando o código:
Este é o código chamado Blink. Nele temos declarado no setup() que usaremos o pino 12 do Arduino e este não fará leitura de dados mas enviará por isso Saída(OUTPUT).
Temos no loop()  duas tarefas sendo executadas: 
  • digitalWrite(12,HIGH); diz que o pino 12 é o polo + que alimenta o LED. Logo há um polo(+) e outro (-) e o Led liga pois é possível fluir a energia.
  • digitalWrite(12,LOW)diz que o pino 12 é o pólo - logo não há fluxo de energia com dois polos(-) e o LED fica desligado.
  • delay(1000);  esté entra na brincadeira para dizer: OPA! Calma ai... espere um pouco. E para cada "1000" temos 1s, logo se tivessimos 5000 teríamos um atraso de 5s.
Então se temos o LED ligado por 1s e desligado por 1s ele liga e desliga muito rápido. Como essa informação está no loop() que executa infinitas vezes teremos o LED piscando o tempo todo.


Veja o vídeo como funciona:








Modificando o Código:

Após fixar bem os conceitos elucidados vamos modificar o código e ver o que acontece.

M1-Execute o código:


void setup() {

pinMode(12, OUTPUT); //Declara que o pino 12 do arduino é de Saída. Vai mandar dados, energia...
}

void loop() {

digitalWrite(12, HIGH);  // Diz que o pino 12 do arduino está Ligado. Logo LED ON
delay(100); // Espera por 1s

digitalWrite(12, LOW); //  Diz que o pino 12 do arduino está Desligado. Logo: LED OFF
delay(100); // Espera por 1s
}

Comentário sobre o código:
Observe que o valor do delay() foi modificado de (1000) para (100). O que aconteceria se fosse (10) ou qualquer outro valor?
Experimente modificar e perceba que ligando e desligando algo temos comportamentos de piscar diferentes.


M2-Execute esse outro código:



void setup() {

pinMode(12, OUTPUT); //Declara que o pino 12 do arduino é de Saída. Vai mandar dados, energia...
}

void loop() {

digitalWrite(12, HIGH);  // Diz que o pino 12 do arduino está Ligado. Logo LED ON
delay(random(100)); // Espera por 1s

digitalWrite(12, LOW); //  Diz que o pino 12 do arduino está Desligado. Logo: LED OFF
delay(random(100)); // Espera por 1s
}


Comentário sobre o código:

Substituímos no delay() o valor de (1000) por: random(100). O que queremos com isso?
Já ouviu falar em números randômicos? Aleatórios? O random() gera números aleatórios. Mas ao inserir um valor como 100 em random() estamos informando que o número deve variar entre 0 e 99 ou seja: entre 0 e (100-1). 
Logo: temos um comportamento inesperado no piscar do LED, o que gera um efeito interessante.

Experimente o seguinte: 
  • Pegue alguns centímetros de um papel branco. Papel higiênico é excelente.
  • Amassar bem e posicionar sobre o LED. 
  • Mude a cor do LED para testar os efeitos.