Baixe o app para aproveitar ainda mais
Prévia do material em texto
2 APRESENTAÇÃO Olá cursista! Bem Vindo ao Curso Robótica Educacional! A SECTI - Secretaria da Ciência, Tecnologia, Inovação e Educação Profissional por meio do Projeto Qualificar ES oferta cursos de qualificação profissional, possibilitando novas oportunidades e para qualificação do cidadão que procura aperfeiçoar seu conhecimento, com vistas a melhor qualidade de vida. O curso é destinado aos profissionais que trabalham como docentes e aficcionados por automação e robótica, e auxiliará como ferramenta fundamental para iniciantes neste universo dos autômatos. O mercado de trabalho está em expansão, há oportunidades de trabalho em empresas de diversos ramos de atuação, desde o comércio, prestação de serviços e instituições públicas. Nesse curso você aprenderá técnicas de arquivamento, entre outros. Ao final desse curso você estará apto para: Atuar profissionalmente no desenvolvimento de projetos robóticos; Implementar projetos de forma otimizada. Por isso, ler o material, compartilhar experiências no chat, interagir com o tutor online no chat, trazer exemplos, fazer os exercícios, e fazer pesquisas sobre os assuntos abordados e assistir vídeos em streaming de vídeos é de fundamental importância para o desenvolvimento do seu aprendizado. Desejo a você, bons estudos! 3 INTRODUÇÃO O QUE É ARDUINO O Arduino consiste-se em uma plataforma de prototipagem em eletrônica, elaborado por Massimo Banzi e David Cuartielles em 2005 na Itália, e tem como objetivo facilitar o desenvolvimento de projetos, desde os mais simples aos mais complexos. Com esta plataforma é possível controlar diversos sensores, motores, leds, dentre vários outros componentes eletrônicos. Todo material é disponibilizado pelo fabricante, como a IDE de desenvolvimento, bibliotecas e até mesmo o projeto eletrônico das placas são open-source, ou seja, é permitida a utilização e reprodução sem restrição sobre os direitos autorais dos idealizadores do projeto. Porém o nome Arduino, logotipo e o design gráfico de suas placas são registrados e protegidos por direitos autorais. Saiba mais acessando página oficial do fabricante1. Projeto Arduino une Hardware e Software, e resulta em uma plataforma de fácil desenvolvimento utilizando um microcontrolador. POR QUE USAR O ARDUINO O Arduino foi criado com o objetivo de facilitar o aprendizado e possibilitar a prototipação e desenvolvimento de projetos com um custo relativamente baixo, além de não exigir um vasto conhecimento em eletrônica. Estes foram sem dúvida os fatores primordiais para a popularização do Arduino em âmbito mundial, 1 http://arduino.org/ 4 não somente entre os desenvolvedores mais experientes, mas também entre os entusiastas e iniciantes. HARDWARE O hardware (as placas) do projeto possui diferentes modelos, alguns deles são menores que um cartão de crédito. Sim, tudo isso falado anteriormente cabe na palma de sua mão! Para o desenvolvimento deste material utilizaremos o modelo Uno, que é mais comumente utilizado em projetos básicos. Existe uma placa voltada para cada projeto, algumas são menores e mais compactas e outras são maiores, permitindo controlar um maior número de dispositivos eletrônicos. É importante lembrar que o preço também varia, por exemplo, o Arduino Uno custa em torno de R$ 50,00 a R$ 100,00 reais no Brasil. BREVE HISTÓRICO DO ARDUINO E SUAS VERSÕES. Arduino foi criado com o objetivo de facilitar o aprendizado e possibilitar a prototipação e desenvolvimento de projetos com um custo relativamente baixo, além de não exigir um vasto conhecimento em eletrônica. Estes foram sem dúvida os fatores primordiais para a popularização do Arduino em âmbito mundial, 5 não somente entre os desenvolvedores mais experientes, mas também entre os entusiastas e iniciantes. Outro ponto forte do Arduino, como dito anteriormente, é seguir a filosofia open-source. Com isso várias pessoas em todo o mundo contribuem com a plataforma, seja com a construção de um novo hardware ou com novas bibliotecas, materiais de apoio e tutoriais. A comunidade de pessoas que utilizam esta plataforma vem crescendo cada vez mais, e sempre surgem novos projetos contendo novas ideias, fazendo com que nunca falte ajuda caso haja alguma dúvida sobre a utilização do hardware e/ou software. Os modelos mais usados em projetos Arduino Uno Arduino Mega Arduino Nano Leia o artigo: O que é Arduino: Tudo o que você precisa saber https://www.hostgator.com.br/blog/o-que-e-arduino/ Veja o vídeo: Top 10 projetos feitos com Arduino https://www.youtube.com/watch?v=C4Uf1exaYCo https://www.hostgator.com.br/blog/o-que-e-arduino/ https://www.youtube.com/watch?v=C4Uf1exaYCo 6 Comparação entre os modelos mais populares Modelos Uno Mega2560 Nano Microcontrolador ATmega328 ATmega2560 ATmega168 V.1 ATmega328V.3 Portas Digitais 14 54 14 Portas PWM 6 15 6 Portas Analógicas 6 16 8 Memória 32K 0,5K bootloader 256K 8K bootloader 16K ou 32K Clock 16 MHz 16 MHz 16 MHz Conexão USB USB USBMini-B Conector para alimentação externa Sim Sim Não Tensão de Operação 5v 5v 5v Corrente Máxima portas IO 40 mA 40 mA 40 mA Alimentação 7 – 12 Vdc 7 – 12 Vdc 7 – 12 Vdc O Arduino é um computador2 como qualquer outro, possuindo: Microprocessador (responsável pelos cálculos e tomada de decisão) Memória RAM (utilizada para guardar dados e instruções, volátil) Memória flash (utilizada para guardar o sotware, não volátil) Temporizadores (timers) Contadores Clock, e etc. 2 De menor escalabilidade. Possui menos memória e menor poder de processamento. 7 O Arduino Uno, por exemplo, possui as seguintes especificações: Microcontrolador: ATmega328 Portas Digitais: 14 Portas Analógicas: 6 Memória Flash: 32KB (0,5KB usado no bootloader²) SRAM: 2KB EEPROM: 1KB Velocidade do Clock: 16MHz Bootloader: Para dispensar o uso de gravador externo, a gravação da Flash é feita porum software pré-gravado, o Bootloader. O Bootloader é o primeiro software executado pelo microcontrolador após um Reset (Boot) e carrega na Flash um software que recebe pela serial (loader). 8 1. Conector USB para cabo tipo AB 2. Botão de reset 3. Pinos de entrada e saída digital e PWM 4. Led verde indicativo de placa ligada 5. Led laranja conectado ao Pin 13 6. ATmega encarregado da comunicação com o computador 7. Led TX e RX da comunicação serial 8. Porta ICSP para programação serial 9. MicrocontroladorATmega 328 10. Cristal de quartzo 16 MHz 11. Regulador de tensão 12. Conector femea 2,1 mm com centro positivo 13. Pinos de tensão e terra 14. Entradas Analógicas O Arduino é baseado em um microcontrolador (ATMega), e dessa forma é logicamente programável, ou seja, é possível a criação de programas, utilizando uma linguagem própria baseada em C/C++, que, quando implementadas fazem com que o hardware execute certas ações. Dessa forma, estamos configurando a etapa de processamento. 9 Diagrama de Blocos ALIMENTAÇÃO O Arduino pode ser alimentado pela conexão USB ou por qualquer fonte de alimentação externa. A fonte de alimentação é selecionada automaticamente. A alimentação externa (não - USB) pode ser tanto de uma fonte ou de uma bateria. A fonte pode ser conectada com um plug de 2,1 mm (centro positivo) no conector de alimentação. Cabos vindos de uma bateria podem ser inseridos nos pinos GND (terra) e Vin (entrada de tensão) do conector de alimentação. A placa pode operar com uma alimentação externa de 6 a 20 V. Entretanto, se a alimentaçãofor inferior a 7 V o pino 5 V pode fornecer menos de 5 V e a placa pode ficar instável. Se a alimentação for superior a 12 V o regulador de tensão pode superaquecer e avariar a placa. A alimentação recomendada é de 7 a 12 V. 10 Os pinos de alimentação são: Vin: Você pode fornecer alimentação por este pino ou, se usar o conector de alimentação, acessar a alimentação por este pino; 5 V: A fonte de alimentação utilizada para o microcontrolador e para outros componentes da placa. Pode ser proveniente do pino Vin através de um regulador on- board ou ser fornecida pelo USB ou outra fonte de 5 V; 3V3: alimentação de 3,3 V fornecida pelo circuito integrado FTDI (controlador USB). A corrente máxima é de 50 mA; GND (ground): pino terra. MEMÓRIA O ATmega328 tem 32 KB de memória flash (onde é armazenado o software), além de 2 KB de SRAM (onde ficam as variáveis) e 1 KB de EEPROM (esta última pode ser lida e escrita através da biblioteca EEPROM e guarda os dados permanentemente, mesmo que desliguemos a placa). A memória SRAM é apagada toda vez que desligamos o circuito. 11 ENTRADA E SAÍDA Cada um dos 14 pinos digitais do Duemilanove pode ser usado como entrada ou saída usando as funções de pinMode(), digitalWrite(), e digitalRead(). Eles operam com cinco V. Cada pino pode fornecer ou receber um Máximo de 40 mA e tem um resistor pull-up interno (desconectado por padrão) de 20-50 kΩ. Além disso, alguns pinos têm funções especializadas: Serial: 0 (RX) e 1 (TX). Usados para receber (RX) e transmitir (TX) dados seriais TTL. Estes pinos são conectados aos pinos correspondentes do chip serial FTDI USB-to-TTL. PWM: 3, 5, 6, 9, 10, e 11. Fornecem uma saída analógica PWM de 8-bit com a função analogWrite(). SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estes pinos suportam comunicação SPI, que embora compatível com o hardware, não está incluída na linguagem do Arduino. LED: 13. Há um LED já montado e conectado ao pino digital 13. Tem 6 entradas analógicas, cada uma delas está ligada a um conversor analógico-digital de 10 bits, ou seja, transformam a leitura analógica em um valor dentre 1024 possibilidades (exemplo: de 0 a 1023). Por padrão, elas medem de 0 a 5 V, embora seja possível mudar o limite superior usando o pino AREF e um pouco de código de baixo nível. Adicionalmente alguns pinos têm funcionalidades especializadas: 12 I2C: 4 (SDA) e 5 (SCL). Suportam comunicação I2C (TWI) usando a biblioteca Wire. AREF. referência de tens para entradas analógicas. Usados com analogReference(). Reset. Envie o valor LOW para reiniciar o microcontrolador. Tipicamente utilizados para adicionar um botão de reset aos Shields( placas que podem ser plugadas ao Arduino para estender suas capacidades) que bloqueiam o que há na placa PLACA ARDUINO E UM CABO USB AB DOWNLOAD DO SOFTWARE DO ARDUINO Faça download da última versão do software do Arduino. Ao terminar, descompacte o arquivo e mantenha a estrutura de pastas e sub-pastas. Se quiser guarde esta pasta no drive C: do 13 seu computador. Dentro desta pasta existe um arquivo chamado arduino.exe que é o ponto de entrada do programa do Arduino, a IDE (Integrated Development Environment). CONECTANDO O ARDUINO O Arduino Uno isolado usa a energia do computador através da conexão USB, não sendo necessária energia externa. Conecte a placa Arduino ao computador usando o cabo USB AB. O LED verde de energia (PWR) deve acender. INSTALANDO OS DRIVERS Drivers para Arduino Uno ou Arduino Mega 2560 com Windows 7, Vista ou XP: . Conecte a placa ao computador e aguarde o Windows iniciar o processo de instalação do driver. Depois de alguns momentos o processo vai falhar. Clique em concluir e dispense a ajuda do assistente. . Clique no Menu Principal e abra o Painel de Controle. Dentro do Painel de Controle, navegue até Sistema e Segurança. Na sequência clique em Sistema, selecione Hardware e depois clique em Gerenciador de Dispositivos. . Procure por Portas (COM & LPT), onde você deve ver uma opção Arduino UNO (COMxx).. Clique com o botão da direita em Arduino UNO (COMxx) e escolha a opção Atualizar Driver.. 14 Depois escolha a opção Instalar de uma lista ou local específico (Avançado), e clique em avançar. . Finalmente navegue e escolha o driver arduino.inf localizado na pasta Drivers do software do Arduino que você baixou. . O Windows vai finalizar a instalação do driver a partir deste ponto. SELECIONE SUA PLACA Você deve selecionar qual a sua placa Arduino: Ferramentas > Placa >Arduino Uno. SELECIONE A PORTA Selecione agora a porta serial que conectará o Arduino: Ferramentas > Porta Serial. 15 Você deve selecionar a mesma porta que utilizou para configurar o sistema no passo 4. São duas funções principais que deve ter todo programa em Arduino. A função setup() é chamada quando um programa começa a rodar. Use esta função para inicializar as sua variáveis, os modos dos pinos, declarar o uso de livrarias, etc. Esta função será executada apenas uma vez após a placa Arduino ser ligada ou ressetada. PROGRAMAÇÃO IDE DO ARDUINO Conforme a figura acima temos a Barra de Títulos (1), Barra de Menus (2), Barra de Ferramentas(3), área de edição do código ou a Sketch Window(4) e janela de mensagens (5). 16 Na barra de ferramentas temos as seguintes opções: Verify Verifica se existe erro no código digitado. Upload Compila o código e grava na placa Arduino se corretamente conectada; New Cria um novo sketch em branco Open Abre um sketch, presente no sketchbook. Save Salva o sketch ativo Serial monitor Abre o monitor serial. Após a conexão do Arduino ao computador, é atribuído a placa uma COM. A primeira vez que o programa Arduino for executado deve-se selecionar o modelo de placa utilizado, no nosso caso escolheremos Arduino Uno, conforme figura abaixo: Após a definição do modelo, deve-se selecionar em qual COM a placa foi atribuída: https://www.embarcados.com.br/wp-content/uploads/2013/11/imagem_04.png 17 Após estas configurações o ambiente está preparado para uso e pode-se testar qualquer um dos exemplos que acompanham a IDE ou até mesmo com um novo sketch. "HELLO WORLD" – BLINK O exemplo mais simples para iniciar a programação do Arduino, que pode ser considerado como o conhecido “Hello World” das linguagens de programação, consiste em acionar um LED através de uma saída digital. A placa Arduino Uno já possui um Led ligado ao pino digital 13 que pode ser utilizado para o teste, e na IDE podemos carregar o exemplo Blink: https://www.embarcados.com.br/wp-content/uploads/2013/11/imagem_05.png https://www.embarcados.com.br/wp-content/uploads/2013/11/imagem_06.png https://www.embarcados.com.br/wp-content/uploads/2013/11/imagem_05.png https://www.embarcados.com.br/wp-content/uploads/2013/11/imagem_06.png 18 No sketchbook se abrirá o seguinte código: Para um melhor entendimento: // linha de comentário /* e */ o texto encontrado entre esses caracteres são de linhas de comentário. As delimitações de // e /* */ indicam para o interpretador que não são código, desconsiderando totalmente o que estiver no limites desses caracteres. Os comandos serão detalhados ao decorrer deste material. /* Blink Turnsonan LED on for one second, then off for ones econd, repeatedly. This examplecodeis in thepublic domain. */ // Pin 13 hasan LED connectedonmostArduinoboards. // give it a name: intled = 13; // the setup routine runs oncewhenyoupress reset: void setup() { // initializethe digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over againforever: void loop() { digitalWrite(led, HIGH); //turnthe LED on (HIGH isthevoltagelevel) delay(1000); // wait for a second digitalWrite(led, LOW); // turnthe LED off bymakingthevoltage LOW delay(1000); // wait for a second } 19 Para verificar se o código está correto, clicar no ícone verify, após a compilação é exibida uma mensagem de status da operação e caso esteja tudo certo será exibida a quantidade de bytes gerados pelo programa: Para gravar o código na memória flash do microcontrolador é necessário clicar no ícone Upload, será transferido o código para a placa e após alguns segundos o LED ligado ao pino 13 começará a piscar em intervalos de 1 segundo. ANALISANDO O CÓDIGO O código do exemplo Blink é relativamente simples, porém apresenta a estrutura básica de um programa desenvolvido na IDE Arduino. Inicialmente nota-se que existem duas funções obrigatórias em um programa Arduino, setup() e loop(). A função setup() é executada na inicialização do programa e é responsável pelas configurações iniciais do microcontrolador, tal como definição dos pinos de I/O, inicialização da comunicação serial, entre outras. A função loop() será onde ocorrerá o laço infinito da programação, ou seja, onde será inserido o código que será executado continuamente pelo microcontrolador. Dentro do loop principal está o código que fará o led ligado pino 13 piscar em intervalos de 1 segundo. https://www.embarcados.com.br/wp-content/uploads/2013/11/imagem_07.png 20 Antes da função setup() encontramos a área de definição onde sepode definir as variáveis, constantes e etc... Comentários no código fonte são delimitados por /* */ quando se tem mais de uma linha e // quando se tem apenas uma linha. intled = 13;cria uma variável chamada led e atribui o valor de 13, que no caso é o endereço na placa do arduino do led SMD. A função digitalWrite(led, HIGH); coloca o pino (13) em nível lógico 1, ligando o led. A função delay(1000); aguarda o tempo de 1000 ms, ou seja, 1 segundo para que possa ser executada a próxima instrução. A função digitalWrite(led, LOW); coloca o pino em nível lógico 0, desligando o led. E novamente é esperado 1 segundo com a função delay(1000); O loop é repetido infinitamente enquanto a placa estiver ligada. Para referências da linguagem pode ser acessada através do menu help Veja a documentação da Multilógica sobre o Arduino https://multilogica-shop.com/Referencia https://multilogica-shop.com/Referencia 21 COMPONENTES ELETRÔNICOS RESISTORES Resistor é um dispositivo elétrico muito utilizado em eletrônica, ora com a finalidade de transformar energia elétrica em energia térmica por meio do efeito joule, ora com a finalidade de limitar a corrente elétrica em um circuito. Resistores são componentes que têm por finalidade oferecer uma oposição à passagem de corrente elétrica, através de seu material. A essa oposição damos o nome de resistência elétrica ou impedância, que possui como unidade o ohm. Causam uma queda de tensão em alguma parte de um circuito elétrico, porém jamais causam quedas de corrente elétrica, apesar de limitar a corrente. Isso significa que a corrente elétrica que entra em um terminal do resistor será exatamente a mesma que sai pelo outro terminal, porém há uma queda de tensão. Utilizando-se disso, é possível usar os resistores para controlar a corrente elétrica sobre os componentes desejados. Figura 1– Resistores Figura 2 - Simbolo do resistor Figura 3 - Tabela de cores de resistores https://pt.wikipedia.org/wiki/Eletricidade https://pt.wikipedia.org/wiki/Eletr%C3%B4nica https://pt.wikipedia.org/wiki/Energia_el%C3%A9trica https://pt.wikipedia.org/wiki/Energia_t%C3%A9rmica https://pt.wikipedia.org/wiki/Energia_t%C3%A9rmica https://pt.wikipedia.org/wiki/Lei_de_Joule https://pt.wikipedia.org/wiki/Corrente_el%C3%A9trica https://pt.wikipedia.org/wiki/Circuito_el%C3%A9trico https://pt.wikipedia.org/wiki/Corrente_el%C3%A9trica https://pt.wikipedia.org/wiki/Ohm https://pt.wikipedia.org/wiki/Tens%C3%A3o_el%C3%A9trica https://pt.wikipedia.org/wiki/Circuito_el%C3%A9trico 22 o Resistor variável Resistor cujos valores podem ser ajustados por um movimento mecânico, por exemplo, rodando manualmente. Tipos: Reostato: É um resistor variável com dois terminais, sendo um fixo e o outro deslizante. Geralmente são utilizados com altas correntes. Potenciômetro: É um tipo de resistor variável comum, sendo comumente utilizado para controlar o volume em amplificadores de áudio. Trimpot: São pequenos resistores variáveis formados por um anel incompleto de um material resistivo (carbono) sobre o qual desliza um cursor, Metal Óxido Varistor ou M.O.V. / Varistores: Tipo especial de resistor que tem dois valores de resistência muito diferentes, um valor muito alto em baixas voltagens (abaixo de uma voltagem específica), e outro valor baixo de resistência se submetido a altas voltagens (acima da voltagem específica do varistor). Ele é usado geralmente para proteção contra curtos-circuitos em extensões ou para-raios usados nos postes de ruas, ou como "trava" em circuitos eletromotores. Termistores: São resistências que variam o seu valor de acordo com a temperatura a que estão submetidas. LDR (Light Dependent Resistor): É uma resistência que varia, de acordo com a intensidade luminosa incidida. A relação geralmente é inversa, ou seja, a resistência diminui com o https://pt.wikipedia.org/wiki/Reostato https://pt.wikipedia.org/wiki/Terminal https://pt.wikipedia.org/wiki/Potenci%C3%B4metro https://pt.wikipedia.org/w/index.php?title=Amplificador_de_%C3%A1udio&action=edit&redlink=1 https://pt.wikipedia.org/w/index.php?title=Amplificador_de_%C3%A1udio&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Varistores https://pt.wikipedia.org/wiki/Termistor https://pt.wikipedia.org/wiki/LDR https://pt.wikipedia.org/wiki/Luz 23 aumento da intensidade luminosa. Muito usado em sensores de luminosidade ou crepusculares. o Lei de Ohmn. Sem dúvidas que a lei de Ohm é a lei mais importante sobre eletricidade, alguns profissionais podem até não concordar com meu ponto de vista, mas é inegável que é a fórmula mais aplicada nos cálculos elétricos. A importância de compreender essa lei e compreender sua utilização é enorme e é base para quase todos os outros estudos e aplicações da eletricidade. A lei de ohm, descoberta e formulada por Georg Simon Ohm, relaciona as três grandezas elétricas principais e demonstra como elas estão intrinsecamente ligadas. Essa descoberta se deu por um experimento relativamente simples feito por Georg, por suas descobertas seu nome foi dado a essa lei da eletricidade. Georg ligou uma fonte de tensão elétrica a um material, e percebeu que circulou uma corrente elétrica por esse circuito. Em seguida Georg variou essa tensão e percebeu uma corrente elétrica diferente. E desta forma para cada tensão aplicada uma corrente diferente era registrada em suas anotações. Figura 4 - Circuito Elétrico Figura 5 - Relação do circuito elétrico Formulas: Exemplos: https://www.mundodaeletrica.com.br/o-que-e-eletricidade/ 24 o USO DO MULTÍMETRO o EXEMPLOS DO USO DO MULTÍMETRO Aferição da tensão contínua Aferição da tensão alternada Aferição da resistência o CAPACITORES Capacitores surgiram da necessidade de armazenar cargas elétricas para usa-las futuramente de maneira flexível quando houver resistência em seus terminais. Capacitor é um componente eletrônico capaz de armazenar carga elétrica, ao ser ligado em uma fonte de tensão, o capacitor possui dois terminais para sua polarização (o terminal maior é positivo e o menor é negativo), dentro do capacitor os terminais são conectados por placas metálicas, geralmente de alumínio,25 separados por um material dielétrico. Esse material dielétrico pode ser de diversos materiais, como cerâmica, teflon, mica, porcelana, celulose, milar e até ar. Dielétrico é o material isolante que é capaz de se tornar condutor quando submetido a determinado valor de campo elétrico, essa mudança de estado (isolante para condutor) acontece quando o campo elétrico é maior que a rigidez dielétrica do material, ou seja, até os materiais isolantes podem conduzir quando submetidos a determinado valor de cargas elétricas. DIODOS Os diodos semicondutores, ou simplesmente diodos, são componentes eletrônicos obtidos a partir de uma junção de materiais semicondutores do tipo P e do tipo N. A junção PN e portanto, os diodos semicondutores se caracterizam por conduzirem a corrente apenas num sentido, isto é, o diodo se comporta como uma "válvula" deixando a corrente passar apenas num sentido 26 Se a corrente elétrica for forçada a circular no sentido normal de condução do diodo, ou seja, se o diodo for polarizado no sentido direto, a resistência oferecida é muito baixa, e a corrente pode passar livremente. Se a corrente elétrica for forçada a circular no sentido oposto, ou seja, se o diodo for polarizado no sentido inverso, a resistência manifestada será muito alta, e praticamente nenhuma corrente pode circular. Diodos podem variar de tamanho e formato conforme a finalidade a que se destinam: a) Diodos retificadores que são diodos projetados para trabalhar com correntes e tensões relativamente elevadas em circuitos de baixas frequências (correntes alternadas). Estes diodos em sua maioria são de silício, e podem ser dotados de irradiadores de calor quando a corrente com que trabalharem for muito intensa. Encontramos estes diodos em circuitos de fontes de alimentação com correntes de trabalho situados entre 500 mA e 1 000 A. b) Diodos de sinal que são diodos para baixas corrente e baixas tensões que, no entanto, podem trabalhar com sinais de frequências muito elevadas. Estes diodos são usados como detectores, em circuitos de comutação, etc. Os diodos de sinal podem ser tanto de silício como de germânio caracterizando-se por suas reduzidas dimensões e a não necessidade de invólucros 27 capazes de disparar calor. Os diodos de sinal trabalham com correntes na faixa de miliampères em frequências que se estendem até 1 GHz. c) Diodos de MAT (muito alta tensão) que são usados na retificação de tensões muito elevadas, de ordem de milhares de volts. Estes diodos aparecem no setor de alta tensão de televisores, em aplicações industriais e médicas. d) Diodos especiais como os diodos zener, diodos de capacitância variável, LEDs. Os LEDs ou Diodos Emissores de Luz não são apenas fontes importantes de luz para os circuitos eletrônicos. Suas características semelhantes às de um diodo semicondutor possibilitam a aplicação desses componentes em funções diversas. Atualmente o projetista pode contar com uma infinidade de tipos de diodos emissores de luz para seus projetos. Neste artigo faremos uma análise de seu princípio de funcionamento e como eles devem ser usados corretamente. CÁLCULO DA RESISTÊNCIA DO LED Se a tensão de alimentação for superior à tensão de funcionamento do LED, é necessária a utilização de uma resistência no circuito em série com o LED. Esta resistência é responsável por limitar a corrente no LED e produz uma queda de tensão. Por forma a calcular o valor correto desta resistência, utiliza-se a seguinte equação que deriva da lei de Ohm: 28 R = (Uin - Uf) / If Ur = Uin - Uf Pr = Ur ⋅If onde: R é a resistência. Uin é a tensão de alimentação. Uf é a tensão do LED. If é a corrente do LED. Ur é a queda de tensão na resistência. Pr é a potência na resistência, convertida em calor A resistência limitadora de corrente de um LED nunca deve ser menor que o valor de R, e com uma potência mínima Pr. COMPONENTES: Sensores: São dispositivos que respondem a estímulos físico/químicos de maneira específica e que podem ser transformados em outras grandezas físicas para fins de medição e/ou monitoramento. Desta forma, o sensor associado a um módulo de transformação do estímulo em uma grandeza para fins de medição e/ou monitoramento pode ser definido como transdutor ou medidor, que converte um tipo de energia em outro. Atuadores: São elementos que produzem movimentos, atendendo a comandos que podem ser manuais, elétricos ou mecânicos. Como exemplo, podemos citar atuadores de movimento induzido por cilindros pneumáticos (pneumática), cilindros hidráulicos (hidráulica), motores hidráulicos e motores pneumáticos (dispositivos rotativos com acionamento de diversas naturezas). Estes mecanismos https://pt.wikipedia.org/wiki/Pneum%C3%A1tica https://pt.wikipedia.org/wiki/Cilindro_hidr%C3%A1ulico https://pt.wikipedia.org/wiki/Hidr%C3%A1ulica https://pt.wikipedia.org/wiki/Motor_hidr%C3%A1ulico https://pt.wikipedia.org/wiki/Motor_hidr%C3%A1ulico https://pt.wikipedia.org/wiki/Armazenamento_de_energia_em_ar_comprimido#Motor http://home.roboticlab.eu/_detail/images/electronics/led_resistor/led_resistor_schematics.png?id=pt:electronics:led_resistor 29 transformam, em geral, a energia de entrada (diversas naturezas) em movimentos que se pode considerar energia cinética. Também são atuadores dispositivos como válvulas, contatores, pás, cancelas ou qualquer elemento que realize um comando recebido de outro dispositivo, com base em uma entrada ou critério a ser seguido. Exemplo de sensores e atuadores 30 USO DA PROTOBOARD É uma placa reutilizável usada para construir protótipos de circuitos eletrônicos sem solda. Uma protoboard é feita por blocos de plástico perfurados e várias lâminas finas de uma liga metálica de cobre, estanho e fósforo. A figura abaixo é uma representação do esquema elétrico da figura acima. As ligações em azul significa que os furos horizontais são divididos em quatro blocos na parte superior e quatro blocos na parte inferior. Os furos verticais estão divididos em duas linhas verticais. 31 Pelo fato de que nem todos têm habilidades com elétrica e eletrônica, sugiro que entrem no simulador online. É gratuito e a única condição é fazer um cadastro. O Link para o simulador https://www.tinkercad.com/learn/circuits Para quem já é usuário sem cadastro clique no botão INSCREVER- SE https://www.tinkercad.com/learn/circuits 32 Faça sua inscrição e faça o login. Logo após clicar no botão e em seguida no botão Na parte superior da área de trabalho está a barra de opções: E a barra lateral direita temos os componentes: Básicos, Todos, entre outros. Clique no ícone para mudar do modo tópicos para o modo de ajuda . 33 PRATIQUE MONTANDO UM CIRCUITO ACENDENDO UM LED. Inicialmente vamos precisar dos seguintes componentes: Protoboard Led e Bateria 9v 1. Clique na Protoboard (Placa de Ensaio Pequena) e arraste para área de trabalho; 2. Clique no LED e arraste para protoboard, conforme figura: 3. Clique na bateria e arraste para protoboard conforme figura: 4. Para montar um circuito simples é necessário da fiação. Clique no furo indicado na figura e arraste para o outro local indicado. 34 5. Faça o mesmo para o outro fio. 6. Clique no botão . O LED queimou devido a corrente passando, ele não resistiu. Se fosse uma montagem real este LED estaria queimado e destino dele seria o lixo. Este é um risco real. Por isso recomendo e ensino o uso do simulador VAMOS CORRIGIR O PROBLEMA. 7. Clique no botão ; 8. Dê um clique no fio e pressione a tecla Delete. 9. Clique no resistor e arraste para onde estavao fio. 10. Clique no botão . Agora o LED acendeu, pois o resistor limitou a corrente que passa por ele. Clique aqui Arraste até aqui 35 O projeto a seguir demonstra o uso do Arduino, codificação e simulação. Neste vamos precisar de um Arduino, um LED e um resistor, arraste para área de trabalho e monte da seguinte forma: Clique no botão . No campo , clique na seta indicada. 36 Clique em texto ; Abrirá a seguinte janela, clique em continuar. Os blocos de código darão lugar a codificação textual. Codificação comentada Não será necessário fazer os devidos comentários. 37 A função setup é utilizada para configurar o seu código do Arduino. Tudo que deve ser configurado, para ser utilizado posteriormente na programação do Arduino, deve ser feito dentro da função setup. É nesta função, que os pinos de entrada e saída digitais são configurados como entradas e saídas, a velocidade de comunicação serial é configurada, os display’s de LCD são inicializados, etc. Ou seja, observe que tudo que você deseja configurar, para ser utilizado ao longo da sua lógica de programação, deve ser feito dentro da função setup. A função loop, contém toda a lógica de programação e controle do seu projeto, deve estar escrito. Esta função executa de forma contínua, ou seja, executa sem parar. E isto faz com que sua lógica de programação fique executando do início até o fim e volte para o começo novamente. Mais detalhes sobre as funções Veja o vídeo: Função Setup e Loop ? | Curso de Arduino https://www.youtube.com/watch?v=l_k5638BOiE Para testar o funcionamento clique no botão . O LED ficará piscando a cada 1 segundo. Para finalizar basta clicar no botão . Pratique os próximos laboratórios. https://www.youtube.com/watch?v=l_k5638BOiE 38 LABORATÓRIOS PROJETO 1 :: ACENDE DOIS LED´s INTERMITENTES Vamos precisar de uma Protoboard, dois LED, dois resistores e um Arduino. Monte conforme a figura abaixo: Detalhamento Técnico As setas na cor Azul semitransparente indicam o fluxo elétrico, convencionado que parte do positivo (anodo) em direção ao negativo (catodo). Repare os pinos GND´s (terra). 39 Clique no botão . O LED ficará piscando a cada 1 segundo. Para finalizar basta clicar no botão . OBS.: Caso queira fazer qualquer tipo de intervenção tanto no hardware quanto no código lembre-se de interromper a simulação, clicando no botão Parar simulação. 40 PROJETO 2 :: SEMÁFORO void setup() { pinMode(10,OUTPUT); pinMode(9,OUTPUT); pinMode(8,OUTPUT); } void loop() { digitalWrite(10, HIGH); delay(4000); digitalWrite(10, LOW); digitalWrite(9, HIGH); delay(4000); digitalWrite(9, LOW); digitalWrite(8, HIGH); delay(4000); digitalWrite(8, LOW); } 41 PROJETO 3 :: SEQUENCIAIS boolean t = true; inti = 12; void setup() { pinMode(12,OUTPUT); pinMode(11,OUTPUT); pinMode(10,OUTPUT); pinMode(9,OUTPUT); pinMode(8,OUTPUT); pinMode(7,OUTPUT); pinMode(6,OUTPUT); pinMode(5,OUTPUT); } void loop() { digitalWrite(i,HIGH); delay(50); digitalWrite(i,LOW); if(t == true) {i = i - 1;} else {i = i + 1;} if(i < 5) {i = 6; t = false; } if(i > 12) {i = 11; t = true; } } 42 PROJETO 4 ::LIGA / DESLIGA constintbuttonPin = 2; constintledPin = 13; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { buttonState = digitalRead(buttonPin); if (buttonState == HIGH) {digitalWrite(ledPin, HIGH);} else {digitalWrite(ledPin, LOW);} } 43 PROJETO 5 :: LCD #include <LiquidCrystal.h> LiquidCrystallcd(12, 11, 5, 4, 3, 2); LiquidCrystallcd(12, 11, 5, 4, 3, 2); void setup() { LCD.setCursor(2,1) lcd.print("Mini Curso"); LCD.setCursor(2,2) lcd.print("Arduino"); } void loop() { lcd.noDisplay(); delay(500); lcd.display(); delay(500); } 44 PROJETO 6 :: SAÍDAS ANALÓGICAS PWM (FADING) intledPin = 9; void setup() { } void loop() { for(intfadeValue = 0 ; fadeValue<= 255; fadeValue +=5) { analogWrite(ledPin, fadeValue); delay(30); } } 45 PROJETO 7 :: CONVERSOR AD COM COMUNICAÇÃO SERIAL constintanalogInPin = A0; analogOutPin = 9; intsensorValue = 0; intoutputValue = 0; void setup() { Serial.begin(9600); } void loop() { sensorValue = analogRead(analogInPin); outputValue = map(sensorValue, 0, 1023, 0, 255); analogWrite(analogOutPin, outputValue); Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); delay(10); } 46 Programa de Computador Um programa de computador, ou software, é uma sequência de instruções que são enviadas para o computador. Cada tipo de microprocessador (cérebro) entende um conjunto de instruções diferente, ou seja, o seu próprio "idioma". Também chamamos esse idioma de linguagem de máquina. As linguagens de máquina são, no fundo, as únicas linguagens que os computadores conseguem entender, só que elas são muito difíceis para os seres humanos entenderem. É por isso nós usamos uma coisa chamada linguagem de programação. No caso de sistemas como o Arduino (os chamados sistemas embarcados), o software que roda no microprocessador é também chamado de firmware. Linguagem de Programação Nós seres humanos precisamos converter as nossas ideias para uma forma que os computadores consigam processar, ou seja, a linguagem de máquina. Os computadores de hoje (ainda) não conseguem entender a linguagem natural que nós usamos no dia a dia, então precisamos de um outro "idioma" especial para instruir o computador a fazer as tarefas que desejamos. Esse "idioma" é uma linguagem de programação, e na verdade existem muitas delas. 47 Essas linguagens de programação também são chamadas de linguagens de programação de alto nível. A linguagem de programação utilizada no Arduino é a linguagem C++ (com pequenas modificações), que é uma linguagem muito tradicional e conhecida. Essa é a linguagem que utilizaremos ao longo deste tutorial. Para converter um programa escrito em uma linguagem de alto nível para linguagem de máquina, nós utilizamos uma coisa chamada compilador. A ação de converter um programa para linguagem de máquina é chamada compilar. Para compilar um programa, normalmente se utiliza um ambiente de desenvolvimento (ou IDE, do inglês Integrated Development Environment), que é um aplicativo de computador que possui um compilador integrado, onde você pode escrever o seu programa e compilá-lo. No caso do Arduino, esse ambiente de desenvolvimento é o Arduino IDE. O texto contendo o programa em uma linguagem de programação de alto nível também é conhecido como o código fonte do programa. Algoritmo (Programa) Um algoritmo, ou simplesmente programa, é uma forma de dizer para um computador o que ele deve fazer, de uma forma que nós humanos conseguimos entender facilmente. Os algoritmos normalmente são escritos em linguagens de programação de alto nível. Isso se aplica a praticamente qualquer computador, inclusive o Arduino, onde um algoritmo também é conhecido 48 como sketch. Para simplificar, a partir de agora nós vamos nos referir aos algoritmos, programas ou sketches simplesmente como "programas". Variável Uma variável é um recurso utizado para armazenar dados em um programa de computador. Todo computador possui algum tipo de memória, e uma variável representa uma região da memória usada para armazenar uma determinada informação. Essa informação pode ser,por exemplo, um número, um caractere ou uma sequência de texto. Para podermos usar uma variável em um programa Arduino, nós precisamos fazer uma declaração de variável, como por exemplo: int led; Nesse caso estamos declarando uma variável do tipo int chamada led. Em seguida nós falaremos mais sobre o tipo de dado de uma variável. Tipo de Dado O tipo de dado de uma variável significa, como o próprio nome diz, o tipo de informação que se pode armazenar naquela variável. Em muitas linguagens de programação, como C++, é obrigatório definir o tipo de dado no momento da declaração da variável, como vimos na declaração da variável led acima. No caso dos módulos Arduino que usam processador ATmega, os tipos mais comuns de dados que utilizamos são: 49 boolean: valor verdadeiro (true) ou falso (false) char: um caractere byte: um byte, ou sequência de 8 bits int: número inteiro de 16 bits com sinal (-32768 a 32767) unsigned int: número inteiro de 16 bits sem sinal (0 a 65535) long: número inteiro de 16 bits com sinal (-2147483648 a 2147483647) unsigned long: número inteiro de 16 bits sem sinal (0 a 4294967295) float: número real de precisão simples (ponto flutuante) double: número real de precisão dupla (ponto flutuante) string: sequência de caracteres void: tipo vazio (não tem tipo) Para conhecer todos os tipos de dado suportados pelo Arduino, veja a seção "Data Types" nessa página. Atribuição Atribuir um valor a uma variável significa armazenar o valor nela para usar posteriormente. O comando de atribuição em C++ é o =. Para atribuírmos o valor 13 à variável led que criamos acima, fazemos assim: led = 13; 50 Quando se armazena um valor em uma variável logo na sua inicialização, chamamos isso de inicialização de variável. Assim, no nosso programa de exemplo temos: int led = 13; O objetivo dessa linha de código é dizer que o pino 13 do Arduino será utilizado para acender o LED, e armazenar essa informação para usar depois ao longo do programa. Os valores fixos usados no programa, como o valor 13 acima, são chamados de constantes, pois, diferentemente das variáveis, o seu valor não muda. Operador Um operador é um conjunto de um ou mais caracteres que serve para operar sobre uma ou mais variáveis ou constantes. Um exemplo muito simples de operador é o operador de adição, o +. Digamos que queremos somar dois números e atribuir a uma variável x. Para isso, fazemos o seguinte: x = 2 + 3; Após executar o comando acima, a variável x irá conter o valor 5. Cada linguagem de programação possui um conjunto de operadores diferente. Alguns dos operadores mais comuns na linguagem C++ são: 51 Operadores aritméticos: +: adição ("mais") -: subtração ("menos") *: multiplicação ("vezes") /: divisão ("dividido por") Operadores lógicos: &&: conjunção ("e") ||: disjunção ("ou") ==: igualdade ("igual a") !=: desigualdade ("diferente de") !: negação ("não") >: "maior que" <: "menor que" >=: "maior ou igual a" <=: "menor ou igual a" Operadores de atribuição: =: atribui um valor a uma variável, como vimos acima. Função Uma função é, em linhas gerais, uma sequência de comandos que pode ser reutilizada várias vezes ao longo de um programa. Para criar uma função e dizer o que ela faz, nós precisamos fazer 52 uma declaração de função. Veja como uma função é declarada no nosso programa de exemplo: void setup() { pinMode(led, OUTPUT); } Aqui estamos declarando uma função com o nome setup(). O que ela faz é executar os comandos de uma outra função pinMode(). A ação de executar os comandos de função previamente declarada é denominada chamada de função. Nós não precisamos declarar a função pinMode() porque ela já é declarada automaticamente no caso do Arduino. Chamada de Função Chamar uma função significa executar os comandos que foram definidos na sua declaração. Uma vez declarada, uma função pode ser chamada várias vezes no mesmo programa para que seus comandos sejam executados novamente. Para chamarmos a nossa função setup(), por exemplo, nós usaríamos o seguinte comando: setup(); No entanto, no caso do Arduino, nós não precisamos chamar a função setup(), porque ela é chamada automaticamente. Quando compilamos um programa no Arduino IDE, ele chama a função 53 setup() uma vez e depois chama a função loop() repetidamente até que o Arduino seja desligado ou reiniciado. Valor de Retorno A palavra chave que vem antes do nome da função na declaração define o tipo do valor de retorno da função. Toda vez que uma função é chamada, ela é executada e devolve ou retorna um determinado valor - esse é o valor de retorno, ou simplesmente retorno da função. O valor de retorno precisa ter um tipo, que pode ser qualquer um dos tipos de dados citados anteriormente. No caso da nossa função setup(), o tipo de retorno é void, o que significa que a função não retorna nada. Para exemplificar, vamos criar uma função que retorna alguma coisa, por exemplo um número inteiro. Para retornar um valor, nós utilizamos o comando return: int f() { return 1; } Quando chamada, a função f() acima retorna sempre o valor 1. Você pode usar o valor de retorno de uma função para atribuí-lo a uma variável. Por exemplo: x = f(); 54 Após declarar a função f() e chamar o comando de atribuição acima, a variável x irá conter o valor 1. Parâmetros Um outro recurso importante de uma função são os parâmetros. Eles servem para enviar algum dado para a função quando ela é chamada. Vamos criar por exemplo uma função que soma dois números: int soma(int a, int b) { return a + b; } Aqui acabamos definir uma função chamada soma(), que aceita dois números inteiros como parâmetros. Nós precisamos dar um nome para esses parâmetros, e nesse caso escolhemos a e b. Esses parâmetros funcionam como variável que você pode usar dentro da função. Sempre que chamarmos a função soma(), precisamos fornecer esses dois números. O comando return a + b; simplesmente retorna a função com a soma dos dois números. Vamos então somar 2 + 3 e atribuir o resultado para uma variável x: x = soma(2, 3); Após a chamada acima, a variável x irá conter o valor 5. 55 56 FORMULÁRIOS 57 REFERENCIAS BITTENCOURT, Sinésio. O que é Arduino: Tudo o que você precisa saber. 2017. Disponível em <https://www.hostgator.com.br/blog/o-que-e-arduino/>. BRAGA, Newton. Como funcionam os capacitores eletrolíticos (ART1819). Disponível em <http://www.newtoncbraga.com.br/ index.php/como-funciona/9293-como-funcionam-os-capacito res-eletroliticos-art1819>. CHAVIER, Luís Fernando. Programação para Arduino - Primeiros Passos. Disponível em <https://www.circuitar.com.br/tutoriais/ programacao-para- arduino-primeiros-passos/>. ELETROGATE. Apostila Arduino Básico v1.0. Disponível em <http://apostilas.eletrogate.com/Apostila_Arduino_Basico- V1.0-Eletrogate.pdf>. MULTILÓGICA. Arduino Iniciante. Disponível em <https://edisciplinas.usp.br/pluginfile.php/3252633/mod_resou rce/content/1/Guia_Arduino_Iniciante_Multilogica_Shop.pdf>. SOUZA, Fábio. Introdução ao Arduino - Primeiros passos na plataforma. 2013. Disponível em <https://www.embarcados. com.br/arduino-primeiros-passos/>. MCROBERTS, Michael Arduino Básico. São Paulo: Novatec, 2015. MOREIRA, Diego. Funções Setup e Loop no Arduino. 2017. Disponível em <https://www.silicioslab.com.br/funcoes-setup- e-loop-no-arduino/>. https://www.hostgator.com.br/blog/autor/sinesio-bittencourt/ https://novatec.com.br/autores/michaelmcroberts.php https://www.silicioslab.com.br/author/admin/ 58 59
Compartilhar