Esta é uma forma simples de você fazer um servo motor seguir a luz, usando alguns simples componentes!
O vídeo original é feito com um ArduinoMEGA, o qual tem mais I/O (entradas e saídas). Todavia pode ser construído com qualquer base “Arduinana”.
Componentes:
1 x Servo motor (Parabólica serve também)
2 x Fotoresistores
2 x Resistor 470ohms
Faça as ligações como descrito no esquema do FRITIZING acima.
Lembre-se que a gambiarra aqui é colocar de alguma forma uma pequena protoboard em cima do servo! Ou fica a vontade para usar a imaginação! (veja vídeo topo pagina)
SKETCH:
#include <Servo.h> Servo myservo; int pos = 0; // Variavel para guardar posicao servo.
int inputPhotoLeft = 1; // Facil de ler, instante 1 ou 0.
int inputPhotoRight = 0; int Left = 0; // Guarda valor fotoresistor.
int Right = 0; // Guarda valor fotoresistor. void setup()
{
myservo.attach(9); // Conecta servo ao pino digital 9.
} void loop()
{
// Le os valores dos fotoresistores e guarda nas variaveis
Left = analogRead(inputPhotoLeft);
Right = analogRead(inputPhotoRight); // Checa se a esquerda é maior que direita, se sim move p/ direita.
if (Left > (Right +20))
// +20 é uma zona morta, sem isso causa interferencia.
{
if (pos < 179)
pos++;
myservo.write(pos);
} // Checa se a esquerda é menor que a direita, se sim move esquerda.
if (Right > (Left +20))
// +20 é uma zona morta, sem isso causa interferencia.
{
if (pos > 1)
pos -= 1;
myservo.write(pos);
} // Adicionando delay ou não o servo corre mais devagar
delay(10);
}
Luz é uma forma de energia que pode ser liberada por um átomo. Ela é feita de uma grande quantidade de pequenos pacotes tipo partículas que têm energia e momento, mas nenhuma massa. Estas partículas, chamadas fótons, são as unidades básicas da luz. Os fótons são liberados como um resultado do movimento de elétrons. Em um átomo, os elétrons se movem em orbitais ao redor do núcleo. Elétrons em orbitais diferentes têm quantidades diferentes de energia. De maneira geral, os elétrons com mais energia se movem em orbitais mais distantes do núcleo.
Para um elétron pular de um orbital mais baixo para um mais alto, algo deve aumentar seu nível de energia. Inversamente, um elétron libera energia quando "cai" de um orbital mais alto para um mais baixo. Essa energia é liberada na forma de um fóton. Uma grande queda de energia libera um fóton de alta energia, que é caracterizado por uma alta freqüência.
Como vimos na última seção, elétrons livres se movendo através de um diodo podem cair em buracos de uma camada tipo-P. Isto envolve uma "queda" a partir da banda de condução para um orbital mais baixo, quando então os elétrons liberam energia na forma de fótons. Isso acontece em qualquer diodo, mas você pode apenas ver os fótons quando o diodo é composto por um material específico. Por exemplo, os átomos em um diodo de silício padrão são arrumados de forma que os elétrons "saltem" uma distância relativamente curta. Como resultado, a freqüência do fóton é tão baixa que é invisível ao olho humano - está na porção infravermelha do espectro de luz. Certamente, isto não é necessariamente algo ruim: LEDs infravermelhos são ideais para controles remotos, entre outras coisas.
Diodos emissores de luz visível (VLEDs), como os que iluminam um relógio digital, são feitos com materiais que possuem uma grande distância entre a banda de condução e as orbitais mais baixos. A distância determina a freqüência do fóton - em outras palavras, ela determina a cor da luz.
Enquanto todos os diodos liberam luz, a maioria não o faz muito eficientemente. Em um diodo comum, o próprio material semicondutor termina absorvendo parte da energia da luz. Os LEDs são fabricados especialmente para liberar um grande número de fótons para fora. Além disso, eles são montados em bulbos de plásticos que concentram a luz em uma direção específica. Como você pode ver no diagrama, a maior parte da luz do diodo ricocheteia pelas laterais do bulbo, viajando na direção da ponta redonda.
Os LEDs têm muitas vantagens sobre lâmpadas incandescentes convencionais. Uma delas é que eles não têm um filamento que se queime e então durarão muito mais tempo. Além disso, seus pequenos bulbos de plástico os tornam muito mais duráveis. Eles também cabem mais facilmente nos modernos circuitos eletrônicos.
Mas a principal vantagem é a eficiência. Em uma lâmpada incandescente convencional, o processo de produção de luz envolve a geração de muito calor (o filamento deve ser aquecido). Isso é energia totalmente desperdiçada. A menos que você use lâmpadas como aquecedor, porque uma enorme porção de eletricidade disponível não está indo para a produção de luz visível. LEDs geram pouco calor. Uma porcentagem muito mais alta de energia elétrica está indo diretamente para a geração de luz, o que diminui a demanda de eletricidade consideravelmente.
Até recentemente, os LEDs eram muito caros para serem usados na maioria das aplicações de iluminação, porque eles são feitos com material semicondutor avançado. Entretanto, o preço de dispositivos semicondutores tem caído na última década, tornando os LEDs uma opção de iluminação mais viável para uma grande variedade de situações. Embora inicialmente eles possam ser mais caros que as luzes incandescentes, seu custo mais baixo ao longo do tempo de uso faz deles uma melhor aquisição. No futuro, os diodos terão um papel ainda mais importante no mundo da tecnologia.
Para obter mais informações sobre LEDs e outros dispositivos semicondutores, confira os links na próxima seção.
O led é um componente de extrema importância pois é usado em infinitas atividades, ele é polarizado, ou seja, tem lado + e - , pode ser reconhecido dessa forma:
Em cada Led depende da sua cor para definir-se sua tensão, assim também defini-se a corrente e resistor aplicado em cada caso...
Uma boa Fórmula para calcular resistor do LED seria:
Rled = Vi - Vled Iled
Rled : Resistor para o LED
Vi = Tensão de entrada
Vled= Tensão do LED
Iled = Corrente do LED ( normalmente de 20 á 30 mA)
Um diodo é o tipo mais simples de semicondutor. De modo geral, um semicondutor é um material com capacidade variável de conduzir corrente elétrica. A maioria dos semicondutores é feita de um condutor pobre que teve impurezas (átomos de outro material) adicionadas a ele. O processo de adição de impurezas é chamado de dopagem. No caso dos LEDs, o material condutor é normalmente arseneto de alumínio e gálio (AlGaAs). No arseneto de alumínio e gálio puro, todos os átomos se ligam perfeitamente a seus vizinhos, sem deixar elétrons (partículas com carga negativa) livres para conduzir corrente elétrica. No material dopado, átomos adicionais alteram o equilíbrio, adicionando elétrons livres ou criando buracos onde os elétrons podem ir. Qualquer destas adições pode tornar o material um melhor condutor.
Um semicondutor com elétrons extras é chamado material tipo-N, já que tem partículas extras carregadas negativamente. No material tipo-N, elétrons livres se movem da área carregada negativamente para uma área carregada positivamente.
Um semicondutor com buracos extras é chamado material tipo-P, já que ele efetivamente tem partículas extras carregadas positivamente. Os elétrons podem pular de buraco em buraco, movendo-se de uma área carregada negativamente para uma área carregada positivamente. Como resultado, os próprios buracos parecem se mover de uma área carregada positivamente para uma área carregada negativamente.
Um diodo é composto por uma seção de material tipo-N ligado a uma seção de material tipo-P, com eletrodos em cada extremidade. Essa combinação conduz eletricidade apenas em um sentido. Quando nenhuma voltagem é aplicada ao diodo, os elétrons do material tipo-N preenchem os buracos do material tipo-P ao longo da junção entre as camadas, formando uma zona vazia. Em uma zona vazia, o material semicondutor volta ao seu estado isolante original - todos os buracos estão preenchidos, de modo que não haja elétrons livres ou espaços vazios para elétrons, e assim a carga não pode fluir.
Na junção, elétrons livres do material tipo-N preenchem buracos do material tipo-P. Isto cria uma camada isolante no meio do diodo, chamada de zona vazia.
Para se livrar da zona vazia, você precisa que elétrons se movam da área tipo-N para a área tipo-P e que buracos se movam no sentido inverso. Para fazer isto, você conecta o lado tipo-N do diodo ao terminal negativo do circuito e o lado tipo-P ao terminal positivo. Os elétrons livres no material tipo-N são repelidos pelo eletrodo negativo e atraídos para o eletrodo positivo. Os buracos no material tipo-P se movem no sentido contrário. Quando a diferença de potencial entre os eletrodos é alta o suficiente, os elétrons na zona vazia são retirados de seus buracos e começam a se mover livremente de novo. A zona vazia desaparece e a carga se move através do diodo.
Quando o terminal negativo do circuito é preso à camada tipo-N e o terminal positivo é preso à camada tipo-P, elétrons e buracos começam a se mover e a zona vazia desaparece
Se você tentar mover a corrente no sentido oposto, com o lado tipo-P conectado ao terminal negativo do circuito e o lado tipo-N conectado ao pólo positivo, a corrente não fluirá. Os elétrons negativos no material tipo-N são atraídos para o eletrodo positivo. Os buracos positivos no material tipo-P são atraídos para o eletrodo negativo. Nenhuma corrente flui através da junção porque os buracos e os elétrons estão cada um se movendo no sentido errado. A zona vazia então aumenta.
Quando o terminal positivo do circuito está ligado à camada tipo-N e o terminal negativo está ligado à camada tipo-P, elétrons livres são coletados em um terminal do diodo e os buracos são coletados em outro. A zona vazia se torna maior.
A interação entre elétrons e buracos nesta configuração tem um interessante efeito colateral - ela gera luz. Na próxima seção, descobriremos exatamente o porquê disso.
Aplicações específicas principais:
- Retificação ( Transformar de Corrente alternada pra Contínua )
- De um Lado Bloqueia, do outro conduz fazendo uma certa lógica para "programação" de circuitos, digamos assim...
- Com Exemplo acima pode-se bloquear corrente, tensão não desejada em certa parte, tanto como liberar corrente/tensão em um sentido só em caso de componentes paralelos.
Este exemplo usa um atuador Piezo elétrico para tocar uma melodia. Ele envia uma onda quadrada para a frequência apropriada do piezo, gerando o tom correspondente.
O cálculo dos tons é feito a partir de uma operação matemática:
timeHigh = período / 2 = 1 / (2 * Frequência do tom)
Os diferentes tons estão descritos na tabela abaixo:
nota frequência período timeHigh
c 261 Hz 3830 1915
d 294 Hz 3400 1700
e 329 Hz 3038 151
f 349 Hz 2864 1432
g 392 Hz 2550 1275
a 440 Hz 2272 1136
b 493 Hz 2028 1014
C 523 Hz 1912 956
Circuito:
Os Piezos têm polaridade. Peças comerciais normalmente têm um lado vermelho (positivo) e outro preto (negativo). Conecte o cabo vermelho no pino digital 9 e o cabo preto ao terra. Às vezes é possível adquirir elementos Piezo sem a capa plástica, e se parecem a um disco metálico.
Esse tutorial é de uma Barra Gráfica de LED's, que é usada em rádio para medição de volume, e ou frequência/Intensidade do Som...
Você pode usar para o que imaginar..
Exemplo de Barra Gráfica de LED's (Mas Você Pode usar aprenas LED's Normais para faze-la)
Hardware Necessário:
Placa Arduino
1 - Barra de LED's ou 10 LED's de qualquer cor (Fica legal 7VD2AM1VM)
10 - Resistores de 220 Ohm
Fios
Protoboard
Potenciômetro 10k+(Obs:Valores e Códigos preparados pra 10k pode haver mudança)
Um Pouco de atenção aqui:
Esse tutorial é de uma Barra Gráfica de LED's, que é usada em rádio para medição de volume, e ou frequência/Intensidade do Som...
Você pode usar para o que imaginar...
Se você não sabe ainda o que um potenciômetro, não se desespere, nem vá para o google ;-) , somente clique aqui e descubra, ou relembre.
Circuito:
Video de Demonstação:
Código:
____________________________________________________________________ /* LED bar graph Turns on a series of LEDs based on the value of an analog sensor. This is a simple way to make a bar graph display. Though this graph uses 10 LEDs, you can use any number by changing the LED count and the pins in the array. This method can be used to control any series of digital outputs that depends on an analog input. The circuit: * LEDs from pins 2 through 11 to ground created 4 Sep 2010 by Tom Igoe
This example code is in the public domain. http://www.arduino.cc/en/Tutorial/BarGraph */
// these constants won't change: const int analogPin = A0;// the pin that the potentiometer is attached to const int ledCount =10;// the number of LEDs in the bar graph
int ledPins[]={ 2,3,4,5,6,7,8,9,10,11};// an array of pin numbers to which LEDs are attached
voidsetup(){ // loop over the pin array and set them all to output: for(int thisLed =0; thisLed < ledCount; thisLed++){ pinMode(ledPins[thisLed],OUTPUT); } }
voidloop(){ // read the potentiometer: int sensorReading =analogRead(analogPin); // map the result to a range from 0 to the number of LEDs: int ledLevel =map(sensorReading,0,1023,0, ledCount);
// loop over the LED array: for(int thisLed =0; thisLed < ledCount; thisLed++){ // if the array element's index is less than ledLevel, // turn the pin for this element on: if(thisLed < ledLevel){ digitalWrite(ledPins[thisLed],HIGH); } // turn off all pins higher than the ledLevel: else{ digitalWrite(ledPins[thisLed],LOW); } } }
Demonstra o uso de uma saída analógica (PWM) para apagar um LED em fade.
Circuito
Um LED conectado ao pino 9 através de um resistor apropriado (aqui um de 270 Ω)
Código
int value = 0; // variavel para armazenar o valor atualizado int ledpin = 9; // LED conectado ao pino digital 9void setup() { // nao ha necessidade de setup} void loop() { for(value = 0 ; value <= 255; value+=5) // fade in (do minimo para o maximo) { analogWrite(ledpin, value); // ajuta o valor(escopo de 0 a 255) delay(30); // espera 30 milisegundos para que o efeito seja visível } for(value = 255; value >=0; value-=5) // fade out (do maximo para o minimo) { analogWrite(ledpin, value); delay(30); } }
Esse Mesmo Código pode ser modificado pra colocar na supermáquina na transição
Podemos chamar este exemplo de "Super Máquina" a famosa série de televisão dos anos 80 em que o famoso ator David Hasselhoff dirigia seu Pontiac com inteligência artificial. O carro foi turbinado com vários LEDs de vários tamanhos possíveis para reproduzir efeitos brilhantes.
Decidimos que seria interessante usar esta metáfora da "Super Máquina" com o objetivo de aprender mais sobre programação sequencial e boas técnicas de programação para as informações de E/S da placa.
Este exemplo usa 6 LEDs conectados entre os pinos 2 e 7 da placa usando resistores de 220 Ohm. O primeiro código do exemplo faz os LEDs piscarem em sequência, um a um usando somente digitalWrite(pinNum,HIGH/LOW) e delay (tempo). O segundo exemplo mostra como usar uma construção for(;;) para reproduzir a mesma coisa, mas em menos linhas de programação. O terceiro e último exemplo se concentra no efeito visual de ligar e desligar os LEDs de uma maneira mais suave.
Circuíto
Veja a aplicação implementada FINAL com 21 LED's;
Obs:Esse Video o cara usa 21 Led's e uma programação diferente do abaixo mas o resultado final não muda muito.
Mão a Obra:
Exemplo 1:
SImples e Objetivo, ...
________________________________________
reduzir o código...:
_________________________________________
/* Super Maquina 2
* -------------- * * Reduzindo a quantidade de código usando o for(;;) * * (cleft) 2005 K3, Malmo University * @author: David Cuartielles * @hardware: David Cuartielles, Aaron Hallborg */int pinArray[] = {2, 3, 4, 5, 6, 7};int count = 0;int timer = 100;void setup(){ // fazendo todas as declarações de uma vez for (count=0;count<6;count++) { pinMode(pinArray[count], OUTPUT); }}void loop() { for (count=0;count<6;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(timer); } for (count=5;count>=0;count--) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(timer); }}
Exemplo 3:
Esse com um Efeito de transição...
_________________________________________/* Super Maquina 3 * -------------- * * Este exemplo é focado em fazer o efeito visual mais fluido * * * (cleft) 2005 K3, Malmo University * @author: David Cuartielles * @hardware: David Cuartielles, Aaron Hallborg */int pinArray[] = {2, 3, 4, 5, 6, 7};int count = 0;int timer = 30;void setup(){ for (count=0;count<6;count++) { pinMode(pinArray[count], OUTPUT); }}void loop() { for (count=0;count<5;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count + 1], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(timer*2); } for (count=5;count>0;count--) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count - 1], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(timer*2); }}________________________________________
Esse foi um SIMPLES tutorial para demonstrar a importância de laços de repetição...ai vem carinhas me falar "por que eu vou comprar um arduino pra fazer um sequencial de led's se da pra fazer com CI's 555 e o 4017 você não sabe?" R: Sim eu sei e estará em breve na parte de ELETRÔNICA do blog, mas isso são tutoriais de arduino para aprendizado, denovo APRENDIZADO, você não vai sair vendendo sequencial de led's de 120,00 reais. São apenas para aprendizado, posteriormente os tutoriais vão começar a complicar e dai quero ver esses mesmos FODÕES aparecer ai pra falar! ________________________________________
Aqui um outro exemplo, esse com FADE, que irei explicar num próximo tutorial...
O conteúdo desta página é uma tradução para o português a partir do site original do Arduino.