Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE Núcleo de Arte e Tecnologia julio lucio martin Aula 01 O que vamos entender? eletrônica • corrente elétrica: • voltagem • resistência • intensidade • modelo da água • dispositivos: • L.E.D • Semicondutor introdução O que vamos entender? números • decimal • binário O que vamos entender? programação • variável: •int •boolean • operadores: • designação • soma • subtração • multiplicação • divisão O que vamos entender? programação • mensagens: •setup() •loop() •pinMode() •digitalWrite() •delay() •Serial.begin() •Serial.print() •Serial.println() O que vamos entender? arduino • Portas do arduino: • digital • alimentação • GND • Carregando o programa: • serial port • board • compilando • carregando O que vamos entender? eletrônica • corrente elétrica: • voltagem • resistência • intensidade • modelo da água • dispositivos: • L.E.D • Semicondutor introdução eletrônica : corrente elétrica electronica : corrente elétrica http://en.wikipedia.org/wiki/Gustav_Kirchhoff I = V/R ? eletrônica : corrente d’agua Resistência = dificuldade para passar de um lado a outro Intensidade = quantidade de água passando Voltagem = Altura da caixa Ralo = terra O que vamos entender? eletrônica • corrente elétrica: • voltagem • resistência • intensidade • modelo da água • dispositivos: • L.E.D • Semicondutor introdução eletrônica : L.E.D Light emitting diode diodo emissor de luz eletrônica : Semicondutor http://en.wikipedia.org/wiki/Semiconductors#History http://en.wikipedia.org/wiki/P–n_junction O que vamos entender? números • decimal • binário números : decimal 1 2 3 4 5 6 7 8 9 10 números : binário 0 1 números : decimal - binário 0 1 2 3 4 5 6 7 8 9 0 1 números : decimal - binário como contamos acima de dez? começamos de novo adicionando um digito números : decimal - binário 0 1 2 3 4 5 6 7 8 9 0 1 números : decimal - binário 0 1 2 3 4 5 6 7 8 9 10 0 1 números : decimal - binário 0 1 2 3 4 5 6 7 8 9 10 00 01 10 11 números : decimal - binário 0 1 2 3 4 5 6 7 8 9 10 000 001 010 011 100 101 110 111 O que vamos entender? programação • variáveis: •int •boolean • operadores: • designação • soma • subtração • multiplicação • divisão variáveis: primeiros tipos int • Números inteiros são números não fracionários. • No computador são as combinações de 16 zeros e uns. • 2 elevado 16 = 65536. • os inteiros variam no arduino de -32768 a 32768. variáveis: primeiros tipos boolean Só tem dois possíveis valores. 0 1 false true LOW HIGH variáveis: declaração Declarar é falar para o processador o tipo de variável que vamos utilizar para ele reservar a memória que precisa. int nome; boolean nome; nome variáveis: designação (operador) Designar e guardar um valor na variável que foi declarada previamente. 2 int a; a = 2; a boolean b; b = true; true b variáveis: designação Podemos declarar e designar ao mesmo tempo 2 int a = 2; ; Sempre colocamos ao final de cada linha a O que vamos entender? programação • variáveis: •int •boolean • operadores: • designação • soma • subtração • multiplicação • divisão operadores: soma int a; a = 2; 2 int b; b = 3; 3 int c; c = a+b; 2+3=5 a b c operadores: subtração 2 int a; a = 2; int b; b = 3; 3 int c; c = a-b; 2 - 3 = -1 a b c operadores: multiplicação int a; a = 2; 2 int b; b = 3; 3 int c; c = a*b; 2*3 = 6 a b c operadores: divisão int a; a = 2; 3 int b; b = 3; 2 int c; c = a/b; 3/2=1 a b NOTA: C seria 1.5 , mas como só considera números inteiros ele ignora a parcela decimal c O que vamos entender? programação • mensagens: •setup() •loop() •pinMode() •digitalWrite() •delay() •Serial.begin() •Serial.print() •Serial.println() mensagens void nomeDaMessagem( parâmetros...) o tipo do valor que devolve a mensagem. Quando não devolve nada é: void O nome que vai ser usado para chamar a mensagem. Parâmetros que poderíamos passar com informações do que a gente quer fazer com a mensagem. mensagens int aQueHoraSeEncontra( ); mensagem que devolve a hora a que nos encontramos como número inteiro O nome da mensagem Nenhum parâmetro. int hora = aQueHoraSeEncontra(); mensagens void meVaiBuscar( int dia, int hora); void e que não retorna nada. O nome que vai ser usado para chamar a mensagem Parâmetros que usamos para informar da hora e do dia meVaiBuscar( 31 , 6 ); O que vamos entender? programação • mensagens: •setup() •loop() •Serial.begin() •Serial.print() •Serial.println() •pinMode() •digitalWrite() •delay() mensagem void setup() • Mensagem que devemos escrever e implementar (preencher) em todos nossos programas de Arduino. • Somente vai ser chamada uma vez quando o programa de arduino é carregado ou ligamos a placa na corrente. • Nela colocamos as coisas que só queremos fazer uma vez. mensagem void loop() • Mensagem que devemos escrever e implementar (preencher) em todos nossos programas de Arduino. • Nela escrevemos o código que vai ser executado na placa. • Vai ser chamada infinitas vezes enquanto a placa estiver ligada. O que vamos entender? Arduino • Portas do Arduino: • Digital • Alimentação • GND • Carregar programa: • serial port • board • copilando • carregando para carregar programa • Selecionamos a placa que estamos usando: Tools > Board • Selecionamos a porta USB: Tools > Port • Compilamos o programa. • Carregamos o programa • Selecionamos a placa que estamos usando: Tools > Board • Selecionamos a porta USB: Tools > Port • Compilamos o programa. • Carregamos o programa O que vamos entender? programação • mensagens: •setup() •loop() •Serial.begin() •Serial.print() •Serial.println() •pinMode() •digitalWrite() •delay() mensagem void Serial.begin(int veloc); Mensagem para iniciar a comunicação serial com computador via USB • int veloc : valor inteiro que determina a velocidade de comunicação em baldios por segundo. • 9600 é o valor típico mensagem void Serial.println(valor) imprime o valor no terminal de Arduino e pula uma linha no final. Serial.println(a); Serial.println(“33 é o número que eu gosto”); mensagem void Serial.print(valor) imprime o valor no terminal de Arduino e NAO pula uma linha no final. Serial.print(a); primeiros códigos O que vamos entender? programação • mensagens: •setup() •loop() •Serial.begin() •Serial.print() •Serial.println() •pinMode() •digitalWrite() •delay() mensagem void digitalWrite( int porta, boolean estado); Coloca uma corrente de 0 Volt ou 5 volts na porta digital. • porta : número da porta digital do arduino que vamos ativar ou desativar • estado : Se queremos corrente ou não nessa porta digital. • LOW/HIGH, 0/1, false/true. mensagem void delay(int tempo); Mensagem que usamos para falar ao Arduino que deve ficar parado nessa linha do código durante alguns milissegundos • tempo : tempo em milésimos de segundo que queremos que espere. mensagem void pinMode(int porta , tipo ); Mensagem que usamos para falar ao Arduino que porta vamos usar e de que jeito. • porta : número da porta que usaremos. • tipo : se usaremos como entrada ou saída, pode ser INPUT/OUTPUT OUTPUT INPUT write no mundo read do mundo void digitalWrite(n,valor); digital dois valores n = número da porta valor = LOW / HIGH pinMode(n , OUTPUT); ? digitalWrite( pinoDoLed , HIGH ); analog degrade ? ? Exemplo 01:led (escrevendo nas portas digitais) Queremos fazer piscar um L.E.D. http://arduino.cc/en/Tutorial/Blink materiais • Arduino • led • resistor 220 ohm O que vamos entender? Arduino • Portas do Arduino: • Digital , Vcc, GND • Carregar programa: • serial port • board • copilando • carregando esquema montagem código void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }