Ramo Estudantil UnB. Seção Brasília. [email protected] Eletrônica Básica Aula 8 AVISO • Please note that you may reproduce the materials provided here as long as you do not charge anyone for the reproduction or include it with a product that is being sold and the material copied is used for educational purposes only and not for resale. Make sure to comply with the fact that you must state on the reproduction that this material has “Copyright © by Elenco® Electronics Inc. All rights reserved and has been reproduced with permission from Elenco Electronics Inc.” Revisão “A vantagem de ter péssima memória é divertir-se muitas vezes com as mesmas coisas boas como se fosse a primeira vez.” Friedrich Nietzsche Boa Notícia !! Boa Notícia!!! Acharam o Bóson de Higgs 04/07/2012 Representa a chave para explicar a origem da massa das outras partículas elementares Peter Higgs Ainda está vivo hoje Descoberta no CERN com 99,8% de certeza Revisão Aula 5 • História dos circuitos integrados • Circuitos integrados: MUSIC • Transistor(TRANSISTOR HUMANO!!) • Amplificador Alguma Dúvida? Revisão Aula 6 • Transformadores • A guerra das correntes: Corrente Contínua X Alternada • Rádio FM • Gravador Alguma Dúvida? Revisão Aula 7 • Retificador • Oscilador( Código Morse) • Entropia • Célula Fotoelétrica • História da descoberta do Efeito fotoelétrico Alguma Dúvida? Protoboard (Breadboard) Estrutura 1: 1 Os pontos em são geralmente usados para conectar os terminais + e – ( ou ground(GND)) Todos os pontos em 1, na mesma linha, estão conectados 2: 2 Os pontos em são geralmente usados para conectaros componentes desejados do circuito)) Todos os pontos em 2, na mesma coluna, estão conectados Arduino: Eletrônica simplificada • Projeto criado na Itália pelo Mássimo Banzi no Interaction Design Institute Ivrea; • Nasceu para complementar o aprendizado de programação, computação física e gráfica •Possui o microcontrolador AVR de 8 bits com memória Flash O que há no Arduino Algoritmo no paradigma Estruturado: para Arduino Setup(Materiais necessários) • Escrever na forma • Tipo nome_variável Função Principal(loop)(Receita) •{ • “Usar” materiais definidos chamando os procedimentos implementados para chegar à saída desejada •} Procedimentos(Funções) • Escrever na forma: • Tipo de Retorno Nome_função( variável de entrada) • {Descrição da função} Experimento 1: uso da protoboard Algoritmos!!! Apresentou a primeira solução sistemática das equações lineares e quadráticas. É considerado o fundador da Álgebra O radical de algarismo e algoritmo vem de algoritmi, a forma latina de seu nome Abū ‘Abd Allāh Muhammad ibn Mūsā al-Khwārizmī 780 – 850 dc Mas o que é Algoritmo? Um algoritmo:” é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita” Alan Turing (1912 – 1954 ) Algoritmo quicksort para ordenação De um vetor de elementos ( Dividir e conquistar) Paradigmas de Programação • Programação estruturada(Arduino) O programa é dividido em subrotinas chamadas seguencial e logicamente para sair de um estágio inicial conhecido para um final desejado • Programação orientada a objeto: baseado na composição e interação entre diversas unidades de software chamadas de objetos. Vamos Fazer um Bolo?? Receita da internet • • • • • • • BOLO SIMPLES Ingredientes 2 copos e meio de farinha 2 copos e meio de açúcar 1 copo de leite 4 ovos Fermento em pó Modo de Preparo • Bata as claras em neve, • à parte bata o açúcar com as gemas , misture as claras batendo sempre • a farinha de trigo o fermento e o leite fervendo, por último uma pitada de sal • Asse em forno pré-aquecido • Assadeira de buraco ou redonda • Cubra com uma mistura de açúcar clara e maracujá, você pode também por um chocolate ou algum ao seu gosto Como escrever um algoritmo no Arduino Setup( Preparação dos Materiais necessários) • Escrever na forma • Tipo nome_variável; Função Principal(Receita)(loop) •{ • Definir novas variéveis necessárias; • “Usar” variáveis definidos chamando os procedimentos implementados para chegar à saída desejada •} Procediimentos(Funções) • Escrever na forma: • Tipo de Retorno Nome_função( variável de entrada) • {Descrição da função} Mais ou menos o algoritmo da Receita da internet Setup( Preparação dos Materiais necessários) • CopoFarinha CF = prepararCopoFarinha(); • CopoAcucar CA = prepararCopoAcucar() • CopoLeite CL =prepararCopoLeite(); Função Principal(Receita) •{ • Ovo ovos = 4; • Fermento F = 1; • ClaradeNeve cn; • GemaeAcucar Ga; • Bolo B; • Cn = BaterOvo( ovos); • Ga =BaterGemaeAcucar (ovos, CopoAcucar c); • B = Ferver( Cl, F, Ga,cn ); Procedimentos(Funções) • Clara BaterOvo(Ovo o) • GemaeAcucar BaterGemaeAcucar (Ovo o, CopoAcucar c) • Bolo Ferver(CopoLeite l, Fermento f, GemaeAcucar ga, ClaradeNeve cn ) Ambiente Arduino Um programa Arduino Sempre tem dois métodos void Setup() { } void loop() { } Ambiente Arduino Ambiente Arduino Tipos padrão Tipo Descrição • Número Inteiro • Numero Racional • Caracter • ...-10,1,2... • ...-4.64, 0, 5.8, 7.8... • ‘a’, ‘A’, ‘#’,... Como escrever • int i = 1; • float f = 5.8; double d = 4.64; • char c = ‘c’; Hello World! Execute o programa pisca_led_rapido.pde Códido pisca_led_rapido.pde • • • • int tempo = 1000; void setup() { pinMode(13, OUTPUT); } • void loop() { • digitalWrite(13, HIGH); • delay(tempo); • digitalWrite(13, LOW); • delay(tempo); • • tempo = tempo - 30; • } Experimento 2 •Execute o programa quadrado.pde • Experimento 2: Código int n = 0; // Para entrada de dados seriais (for if (Serial.available() >0) { incoming serial data) int Area; // leitura dos dados (read the incoming byte:) • void setup() { • Serial.begin(9600); // Ativa a porta serial (opens serial port, sets data rate to 9600 bps) n = Serial.read(); • Serial.flush(); n = n - '0';//POR QUE???? • • } void loop() { Area = n*n; • • • • // mostra na tela (say what you got:) // Testa se a prta serial esta recebendo dados Serial.print("Valor do lado digitado: "); Serial.println(n); (send data only when you receive data:) Serial.println("Area "); delay(3000);//POR QUE???? Serial.println("Digite o tamanho do lado do Serial.println(Area); quadrado "); } } Serial.flush(); Tabela ASCII: tabela dos caracteres Experimento 3 • Calculem o perímetro de um quadrado De lado inteiro lido pelo teclado Experimento 3 int n = 0; // Para entrada de dados seriais (for incoming serial data) n = Serial.read(); n = n - '0';//POR QUE???? void setup() { Serial.begin(9600); // Ativa a porta serial (opens serial port, sets data rate to 9600 bps) Serial.flush(); } void loop() { // Testa se a prta serial esta recebendo dados (send data only when you receive data:) delay(3000);//POR QUE???? Serial.println("Digite o tamanho do lado do quadrado "); if (Serial.available() >0) { int Perimetro; // leitura dos dados (read the incoming byte:) Perimetro = 4*n; // mostra na tela (say what you got:) Serial.print("Valor do lado digitado: "); Serial.println(n); Serial.println("Perimetro "); Serial.println(Perimetro); } Serial.flush(); }