2.09k likes | 2.76k Views
CURSO DE ARDUINO AUTOMAÇÃO & ROBÓTICA. CARACTERÍSTICAS E SIMPLICIDADE. Utiliza microcontrolador AtMEGA 8,168, 328,1280, 2560. RISC - Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instruções. 20 MIPS (milhões de instruções por segundo).
E N D
CURSO DE ARDUINO AUTOMAÇÃO & ROBÓTICA
CARACTERÍSTICAS E SIMPLICIDADE • Utiliza microcontrolador AtMEGA 8,168, 328,1280, 2560. • RISC - ReducedInstruction Set Computer ou Computador com um Conjunto Reduzido de Instruções. • 20 MIPS (milhões de instruções por segundo). • Memória flash: 8kb,16kb, 32kb, 128kb, 256kb. • 14 portas digitais • 6 portas analógicas • Oferece um IDE e bibliotecas de alto nível • Hardware e SoftwareOpen-Source • Programado em C/C++ • Transferência de firmware via USB
TIPOS DE ARDUINO • Arduino 2009 • Arduino Mega • Arduino UNO • Arduino ADK (Google ADK - Android) • Arduino BT • ArduinoNano • LilyPad
RODANDO O PROGRAMA BLINK INSTALANDO O ARDUINO E O SKETCH CONFIGURANDO O MODELO DO ARDUINO ESCOLHENDOA PORTA SERIAL
PORTAS DIGITAIS Trabalha com 0 e 1 na lógica binária - De 0 à 0,8 volts = 0 • De 2 à 5 volts = 1
PORTAS ANALÓGICAS • Valor lido é análogo à tensão • 0 volts = 0 • 2,5 volts = 512 • 5 volts = 1023 • Conversor A/D de 10 bits: 0 à 1023
Na prática • Ligamos componentes em portas digitais comuns, pwm ou analógica. • Fazemos leitura e escrita nestas portas a fim de obter um dado ou um determinado comportamento. • Processamos os dados no microcontrolador.
PROGRAMAÇÃO Dois métodos são obrigatórios: void setup(){ } void loop(){ } setup() : será executado uma única vez ao ligar a placa loop() : será executado infinitamente
PROGRAMAÇÃO • Comando pinMode() • Comando digitalWrite() • Comando digitalRead() • Comando analogRead() • Comando analogWrite()
LED • O diodo emissor de luz conhecido pela sigla LED (Light EmittingDiode). • Sua funcionalidade básica é a emissão de luz
RESISTOR • Função: limitar a quantidade de corrente elétrica. • Resistência elétrica é a oposição à passagem de uma corrente elétrica, medida em ohms. • O valor da resistência de um resistor pode ser identificado de acordo com as cores apresentadas em sua cápsula.
EXPERIÊNCIA 1 PISCA LED Que resistor devemos utilizar? Arduino – saída: 5 volts Led vermelho: 1,6 volts Corrente do Led: aprox. 20 mA Aplicando a lei de Ohm: R – é a resistência elétrica medida em ohm (Ω)U – é a tensão medida em volt (V)i – é a corrente elétrica medida em ampère (A) U = R . i R = U / i R = (5,0 – 1,6) / 0,020 R = 3,4 / 0,020 R = 170 omhs Utilizar resistor 170 omhs
Materiais necessários: • Arduino • Protoboard • Fios de conexão • LED • Resistor de 220 ohms
Exercícios • Altere o programa anterior para 3 LEDs piscarem sequencialmente.
CLASSE SERIAL • Permite a comunicação do Arduino com o computador através da porta serial (via USB). • Instruções: • Serial.begin(9600); // inicia a comunicação do Arduino com o computador utilizando a velocidade 9600 bits por segundo • Serial.println(x); //--- envia o valor de x como decimal para o computador
LDR (Light Dependent Resistor) • Um LDR é um transdutor de entrada (sensor) que converte a luz em valores de resistência • É feito de sulfeto de cádmio (CdS) ou seleneto de cádmio (CdSe). • Sua resistência diminui quando a luz é muito alta, e quando a luz é baixa, a resistência no LDR aumenta.
EXPERIÊNCIA 2 – LUZ AMBIENTE • Materiais necessários: • Arduino • Protoboard • Fios de conexão • LDR • Resistor de 10k
Exercícios Acender o LED quando o ambiente estiver escuro e apagar o LED quando o ambiente estiver claro.
CHAVE TÁCTIL • Também conhecida como Push Button ou Chave de Toque, fecha contato quando pressionada
EXPERIÊNCIA 3 ACENDER LED COM CHAVE TÁCTIL Materiais necessários: Arduino Protoboard Fios de conexão Botão táctil Resistor de 10k LED Resistor de 220 ohm
Exercícios O LED devera ficar apagado quando clicar na chave táctil ele se acende após clicar novamente ele se apaga.
Os Símbolos usados na construção de funções são os seguintes: { } Dentro das chaves vão os procedimentos (statements) que a função deve executar; ; - O ponto-e-vírgula é usado para marcar o final de um Procedimento; // - comentário de uma linha: qualquer caracter depois das duas barras é ignorado pelo programa; /*...*/ - comentário em várias linhas: qualquer texto colocado entre esses símbolos também é ignorado pelo programa
Exemplo: /* Nesse código a função setup( ) ativa a porta serial em 9600 bits/s e a função loop( ) fica transmitindo a frase ‘Hello World!’ pela porta serial a cada 2 segundos. */ void setup( ){ Serial.begin(9600); // inicializa a porta serial } void loop( ){ Serial.println(“ Hello World! “); // transmite frase delay(2000); }
Exemplo: /* Esse programa escrito em C do Arduino aumenta e diminui gradativamente o brilho de um LED conectado no pino PWM 10 do Arduino. */ int i=0; // declaração da variável global inteira i iniciada com 0 voidledOn( ); // declaração da função criada ledOn do tipo void void setup( ) { pinMode(10,OUTPUT); // aqui 2 parâmetros são passados à função pinMode( ) } void loop( ){ for (i=0; i <= 255; i++) ledOn( ); // aumenta o brilho do led for (i=255; i >= 0; i--) ledOn( ); // diminui o brilho do led } voidledOn( ){ // função que acende o led analogWrite (10, i); // o nº do pino e o valor de i são passados à função analogWrite( ) delay (10); }
if...else Ao se acrescentar mais um bloco de instruções no loop do comando if pode-se criar o comando i f...else , para fazer um teste novo quando o resultado da expressão for falsa. if (expressão) { bloco de instruções1; // se ‘expressão’ for verdadeira, ‘bloco de instruções1’ é executado } else { bloco de instruções2; // se ‘expressão’ for falsa, ‘bloco de instruções2’ é executado }
if (expressão1) { bloco de comandos1; } elseif (expressão2) { bloco de instruções2; } else { bloco de comandos3; }
switch (expressão) { case 1: bloco de instruções1; break; case 2: bloco de instruções2; break; case 3: bloco de instruções3; break; default: bloco de instruções4; }
while Uma das operações mais frequentes que os programas executam é repetir um grupo de instruções até que uma condição inicialmente verdadeira se torne falsa. É para isso que serve o comando while. A sua sintaxe é a seguinte: while (expressão) { bloco de instruções; } do...while Para que o bloco de instruções seja executado ao menos uma vez, ele é deslocado para a entrada da caixa de decisões, antes do teste de validade: do { bloco de instruções; }while (expressão)
for Inserindo-se no loop do comando while um contador que registre cada execução do bloco de instruções cria-se o comando for . Esse contador deve ter uma variável de controle que deve ser previamente inicializada com um tipo e um valor. A sua sintaxe é a seguinte: for (variável; expressão;incremento) { bloco de instruções; }