A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula 01: Introdução, LED piscante e Sinalizador de código Morse;

Apresentações semelhantes


Apresentação em tema: "Aula 01: Introdução, LED piscante e Sinalizador de código Morse;"— Transcrição da apresentação:

1 Aula 01: Introdução, LED piscante e Sinalizador de código Morse;

2 Aula 01: Introdução a conceitos básicos
O que vamos aprender? Introdução ao Arduino. Como usar uma protoboard e suas utilidades. Aprender sobre leds, resistores, e seus usos básicos em um circuito. Ligar componentes acima na protoboard. Iniciando na programação, aprendendo sobre: declaração de variáveis, void loop(), void setup(), pinMode, digitalWrite e delay

3 1 – Introdução ao Arduino
O que é um Arduino? Em termos técnicos: “Um Arduino é um microcontrolador de placa única e um conjunto de software para programá-lo. O hardware consiste em um projeto simples de hardware livre para o controlador, com um processador Atmel AVR e suporte embutido de entrada/saída. O software consiste de uma linguagem de programação padrão e do bootloader que roda na placa.”

4 Traduzindo: Um Arduino é um pequeno computador que você pode programar para processar entradas e saídas entre o dispositivo e os componentes externos conectados a ele. O Arduino é o que chamamos de plataforma de computação física ou embarcada, ou seja, um sistema que pode interagir com seu ambiente por meio de hardware e software; O Arduino pode ser usado para milhares de aplicações, e nesse curso estudaremos algumas.

5 Figura 1: Arduino

6 2 – Sobre a Protoboard A protoboard é um dispositivo reutilizável, sem solda, utilizado para prototipar um circuito eletrônico ou para experimentar projetos de circuitos; A placa consiste em uma série de furos em uma grade; sob a placa, esses furos são conectados por uma tira de metal condutivo.

7 Figura 2: Modelo de uma protoboard

8 As barras que vemos horizontalmente na figura normalmente são utilizadas para alimentação do sistema (voltagem escolhida e na outra o terra), ou seja, se você ligar 5 V em uma dessas placas horizontais, toda a linha valerá 5V; As placas verticais são similares às placas horizontais, a diferença notável é: são menores e são utilizadas para o circuito em si, ou seja , se você ligar uma porta do Arduino em alguma coluna, toda coluna valerá o valor desta porta(lembre-se que agora é a coluna, vertical).

9 3 - LED’s, resistores, e seus usos básicos em um circuito.
LED’s são diodos emissores de luz. Diodos são dispositivos elétricos que permitem o fluxo da corrente em apenas um sentido e, no caso de um LED, ao passar uma corrente elétrica em seus terminais ele emite uma radiação luminosa (Efeito Fotoelétrico); Um LED apresenta dois terminais: O Anodo – positivo (terminal mais comprido), conectamos na tensão da alimentação. O Catodo – negativo (terminal mais curto, parte “chanfrada”), conectamos no terra.

10 Figura 4: Modelo de um LED

11 Se conectarmos o LED da forma errada, isso não o danificaria (a menos que coloquemos correntes muito elevadas nele); Entretanto, é essencial que sempre se coloque um resistor (resistor de limitação) em série com o LED, para garantir que a corrente certa chegue ao LED. Podemos danificar permanentemente o LED se não o fizermos.

12 Resistores: Um dispositivo projetado para provocar resistência a uma corrente elétrica, causando uma queda de tensão em seus terminais. Resistores são geralmente utilizados para limitar correntes, diminuir a tensão e como emissores de calor,energia térmica, (chuveiro elétrico, lâmpadas incandescentes, etc); O valor de resistência é conhecido como ohm, e seu símbolo é o ômega grego, Ω.

13 Figura 5: (a) resistor (b) símbolo elétrico de um resistor

14 Figura 6: Código de cores de um resistor

15 Para sabermos qual resistor utilizar, devemos calcular os valores de corrente que queremos entregar ao sistema ou a algum dispositivo. A resistência pode ser calculada pela Lei de Ohm: V – Tensão (V – Volts) I – Corrente (A – Ampére) R – Resistência (Ω – Ohm) R = V / I, para nossos cálculos usaremos: R = (Vs – Vled) / I Nota: NUNCA utilize um valor de resistor mais BAIXO que o necessário. Você pode danificar dispositivos do circuito. V = R.I

16 4 – Prática 1: LED ‘piscante’
Usaremos um LED de 2 V e uma corrente de 35 mA, conectado a um pino digital do Arduino, de 5 V, assim o valor necessário para o resistor será de: R = (5 – 2) / 0.035 O que dá um valor de 85,71. Como valores de resistores são padrões, usaremos um resistor de 100 , sempre use valor maiores se não der o valor padrão.

17 4.1 – Ligando os componentes e começando a programação.
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, pegue sua protoboard, o LED, o resistor e os fios, e conecte tudo como mostra a figura a seguir:

18

19 Analise seu circuito: o sinal sairá da porta 10 do Arduino, passará pelo resistor e chegará na “perna” positiva do LED; passará para a “perna” negativa e depois chegará no GND.

20 Por exemplo, se você tivesse criado sua própria função para realizar uma série de complicadas operações matemáticas, e que tivesse muitas linhas de código, poderia executar esse código quantas vezes quisesse simplesmente chamando o nome da função, em vez de ter de reescrever o código cada vez que fosse usá-lo. No caso desse programa, todavia, a função setup() tem somente uma instrução para executar. A função inicia com: void setup(). Isso diz ao compilador que sua função é chamada setup, que ela não retorna nenhum dado (void) e que você não passa nenhum parâmetro a ela (parênteses vazios). Se sua função retornasse um valor inteiro e você também tivesse valores inteiros a serem passados a ela (por exemplo, para serem processados pela função), o resultado seria algo como: int myFunc(int x, int y)

21 Aqui você criou uma função (ou um bloco de código) de nome myFunc
Aqui você criou uma função (ou um bloco de código) de nome myFunc. A ela foram passados dois inteiros, x e y. Assim que tiver concluído, ela retornara um valor inteiro, no ponto de execução imediatamente depois de onde havia sido chamada no programa (portanto, utilizamos int antes do nome da função). Todo o código dentro da função está contido entre chaves. Um símbolo { inicia o bloco de código, e um símbolo } termina o bloco. Tudo que existir entre esses dois símbolos, no código, fará parte da função. (Falarei mais detalhadamente sobre funções no futuro, por isso não se preocupe com elas, por enquanto.) Nesse programa, você tem duas funções; a primeira e chamada setup, e seu propósito e preparar tudo que e necessário para que seu programa funcione antes da execução do loop principal do programa:

22 void setup() { pinMode(ledPin, OUTPUT); } Sua função setup tem apenas uma instrução, pinMode, que diz ao Arduino que você deseja definir o modo de um de seus pinos como Saída (Output), e não Entrada (Input). Dentro dos parênteses, você coloca o número do pino e o modo (OUTPUT ou INPUT). O número de seu pino e ledPin, previamente definido com o valor 10. Dessa forma, essa instrução está simplesmente dizendo ao Arduino que o pino digital 10 deve ser definido como modo OUTPUT.

23 Como a função setup() executa apenas uma vez, agora você avança para o loop principal da função:
void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); } A função loop() é a função principal do programa e executa continuamente enquanto o Arduino estiver ligado. Todas as declarações dentro da função loop() (dentro das chaves) são executadas uma de cada vez, passo a passo, até que se alcance o fim da função; nesse ponto, o loop reinicia desde o princípio e assim infinitamente, ou até que o Arduino seja desligado ou o botão Reset pressionado.

24 Neste projeto, você deseja que o LED acenda, fique aceso por um segundo, apague, permaneça apagado por um segundo e então repita o processo. Os comandos para dizer ao Arduino como fazer essas operações estão dentro da função loop(), pois você deseja que sejam repetidos seguidas vezes. A primeira instrução é: digitalWrite(ledPin, HIGH); Ela escreve um valor HIGH ou LOW para o pino dentro da instrução (nesse caso ledPin, que e o pino digital 10). Quando você define um pino como HIGH, está enviando 5 volts para ele. Quando define como LOW, o pino se torna 0 volt, ou terra. Essa instrução, portanto, envia 5 V para o pino 10 e acende o LED.

25 Depois dela, temos: delay(1000); Essa instrução simplesmente diz ao Arduino para esperar milissegundos (há milissegundos em um segundo) antes de executar a instrução seguinte: digitalWrite(ledPin, LOW); Que desliga a força que vai para o pino digital 10 e apaga o LED. Então, há outra instrução de espera por mais milissegundos, e depois a função termina. Entretanto, como essa é sua função loop() principal, a função reiniciara desde o princípio.

26 Seguindo a estrutura do programa passo a passo novamente, você pode ver que tudo é muito simples:
// Projeto 1 – LED piscante int ledPin = 10; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW);

27 Você inicia atribuindo uma variável leptin, e dando a ela um valor de 10. Depois, avança para a função setup(), na qual você define o modo para o pino digital 10 como saída. No loop principal do programa, você define o pino digital 10 como HIGH, enviando a ele 5 V. Então, espera por um segundo e desliga os 5 V, antes de esperar mais um segundo. O loop então reinicia desde o princípio: o LED acendera e apagara continuamente, enquanto o Arduino tiver energia. Agora que você sabe de tudo isso, pode modificar o código para acender o LED por um intervalo diferente de tempo e desligá-lo por outro intervalo. Por exemplo, se você quisesse que o LED ficasse aceso por dois segundos e, depois, apagado por meio segundo, poderia fazer o seguinte:

28 void loop() { digitalWrite(ledPin, HIGH); delay(2000); digitalWrite(ledPin, LOW); delay(500); } Se quisesse que o LED ficasse apagado por cinco segundos e, depois, piscasse brevemente (250ms), como o indicador LED de um alarme de carro, poderia fazer o seguinte: delay(250); delay(5000);

29 Para que o LED pisque, acendendo a apagando rapidamente, tente:
void loop() { digitalWrite(ledPin, HIGH); delay(50); digitalWrite(ledPin, LOW); } Alternando o tempo em que o LED fica aceso e apagado, você pode criar o efeito que quiser (dentro do que pode ser feito com um único LED).

30 5 – Prática 2: Sinalizador de código Morse S.O.S.
Usaremos: Um LED de 2 V Um resistor de 100Ω

31

32 Verifique o seu circuito e depois digite o código:
// LED conectado ao pino 10 int ledPin = 10; // executa uma vez, quando o sketch inicia void setup() { // define o pino como saída pinMode(ledPin, OUTPUT); } // executa repetidas vezes

33 void loop() { // 3 pontos for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // acende o LED delay(150); // espera 150ms digitalWrite(ledPin, LOW); // apaga o LED delay(100); // espera 100ms } // espera 100ms para marcar o intervalo entre as letras

34 for (int x=0; x<3; x++) {
delay(100); // 3 traços for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // acende o LED delay(400); // espera 400ms digitalWrite(ledPin, LOW); // apaga o LED delay(100); // espera 100ms } // espera 100ms para marcar o intervalo entre as letras // 3 pontos novamente

35 for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // acende LED
for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); // acende LED delay(150); // espera 150ms digitalWrite(ledPin, LOW); // apaga o LED delay(100); // espera 100ms } // espera 5 segundos antes de repetir o sinal de SOS delay(5000);

36 Analisando o código: A primeira parte do código é idêntica a do 1° projeto, na qual você inicializa uma variável e define o pino digital 10 como saída. No loop principal do código, você pode ver os mesmos tipos de instruções para acender e apagar o LED de acordo com determinado intervalo de tempo. Dessa vez, entretanto, as instruções estão dentro de três blocos separados de código. O primeiro bloco é responsável pela saída dos três pontos: for (int x=0; x<3; x++) { digitalWrite(ledPin, HIGH); delay(150); digitalWrite(ledPin, LOW); delay(100); }

37 Você pode ver que o LED fica aceso por 150ms e depois apagado por 100ms; também pode ver que essas instruções estão dentro de um par de chaves e são, portanto, um bloco separado de código. Mas, quando você executa o sketch, vê a luz piscar três vezes, e não apenas uma. Isso é feito utilizando o loop for: for (int x=0; x<3; x++) { E essa instrução que faz com que o código dentro do bloco seja executado três vezes. Ha três parâmetros que você deve dar ao loop for, que correspondem a inicialização, a condição e ao incremento A inicialização ocorre primeiro e somente uma vez. Cada vez que o loop e percorrido, a condição e testada; se for verdadeira, o bloco de instrução e o incremento são executados; então, a condição e testada novamente.

38 Quando a condição se torna falsa, o loop termina.
Assim, primeiro você tem de inicializar uma variável como número inicial do loop. Nesse caso, você utiliza a variável x, definindo-a como zero: int x=0; Depois, você define uma condição para decidir quantas vezes o código no loop será executado: x<3; Nesse caso, o código fará o loop se x for menor que (<) 3. O símbolo < e o que chamamos de operador de comparação, utilizado para tomar decisões dentro do código e comparar dois valores.

39 Os símbolos utilizados são:
• == (igual a) • != (nao igual a) • < (menor que) • > (maior que) • <= (menor ou igual a) • >= (maior ou igual a) Em seu código, você esta comparando x ao valor 3, para ver se ele e menor do que 3. Se isso for verdade, o código no bloco repetirá.

40 A instrução final: x++ É uma instrução que eleva o valor de x em 1 unidade. Você também poderia ter digitado x = x + 1, o que atribuiria a x o valor de x + 1. Note que não e necessário colocar um ponto e vírgula depois dessa instrução final no loop for. Você pode realizar operações matemáticas simples utilizando os símbolos +, -, * e / (adição, subtração, multiplicação e divisão). Por exemplo: • = 2 • = 1 • 2 * 4 = 8 • 8 / 2 = 4

41 Assim, seu loop for inicializa o valor de x como 0, e depois executa o código dentro do bloco (dentro das chaves). Então, ele adiciona o incremento (nesse caso, adiciona 1 a x). Por fim, ele verifica se a condição e valida (se x e menor que 3) e, se esse for o caso, repete o processo. Agora que você sabe como funciona o loop for, pode ver que ha três loops for em seu código: um que faz um loop três vezes e exibe os pontos, outro que repete três vezes e exibe os traços e, por fim, uma repetição dos pontos. Repare que a variável x tem escopo local, o que significa que pode ser vista apenas pelo código dentro de seu próprio bloco. Do contrário, se ela for inicializada fora da função setup (), terá um escopo global e poderá ser vista pelo programa inteiro. Em nosso caso, se você tentar acessar x fora do loop for, receberá um erro.

42 Entre cada loop for há uma pequena espera, para criar uma leve pausa entre as letras do S.O.S. Por fim, o código aguarda cinco segundos, antes que o loop principal do programa reinicie desde o início.

43 Referências bibliográficas: McRoberts, Michael
Arduino básico / Michael McRoberts ; [tradução Rafael Zanolli]. -- São Paulo : Novatec Editora, 2011.  Webgrafias: (Acesso em 24/03/ :59hs) OBS: as imagens utilizadas são de domínio público.


Carregar ppt "Aula 01: Introdução, LED piscante e Sinalizador de código Morse;"

Apresentações semelhantes


Anúncios Google