LusoRobótica - Robótica em Português

Robótica => Tutoriais => Tópico iniciado por: TigPT em 26 de Junho de 2008, 13:01

Título: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 26 de Junho de 2008, 13:01
Dia 3:
 
Ok, então estamos prontos para começar a fazer algum código.

Eu pensei.. e acho que podemos fazer uma daquelas lâmpadas giras que mudam de cor que se utiliza para por na secretária.. mas como é que elas funcionam?

Bem, o que elas tem basicamente é 3 lâmpadas das cores principais, e jogar com estas para produzir varias cores. Bem, eu não tenho um LED verde mas vou utilizar um amarelo.. espero que faça algum efeito engraçado.

Vamos primeiro que tudo ligar resistências de 220 Ohms para obtermos uma boa intensidade de luz, mas evitando que estes se queimem.

Mas porque 220 Ohms? Eu não percebo nada de resistências..

Sabemos pela lei de Ohm que:

V = R x I

Onde V é os 5 Volts a que funciona o Arduino, e I é a intensidade de corrente que pretendemos ter.

A corrente que os LEDs suportam variam muito pela cor que estes emitem, e principalmente a sua dimensão (capacidade de dissipação de temperatura), mas esta anda entre os 20mA e os 50mA.

Para garantirmos que não estragamos nada vamos nos ficar pelos 20, 22mA, tendo a certeza de que estes vão dar boa luz, e não se queimarão.

Assim:

R = V / I
 
R = 5V / 0,022A

R = 227,27 Ohm
(que nos dá jeito utilizar resistências de 220 Ohms por serem muito comuns no mercado)

Ligamos assim os 3 LEDs a saídas digitais, para o caso PINs 11, 12 e 13, mas em cada um destes colocamos uma resistência em série ligada à massa (GRD).

Vamos fazer código de modo a que os LEDs pisquem.

http://www.revver.com/video/851603 (http://www.revver.com/video/851603)
http://www.revver.com/video/852219 (http://www.revver.com/video/852219)

O código elaborado no vídeo encontra-se em anexo desta página e pode ser descarregado.

Espero que tenham gostado.
Título: Re: Dia 3 - Iniciar ao código do Arduino, com LEDs (Blink2)
Enviado por: msr em 19 de Julho de 2008, 15:19
Detectei uma pequena gralha nos comentários do código. Logo nas primeiras linhas, referes-te sempre ao pin 13, em vez de 11, 12 e 13. Não é que seja muito importante, mas achei por bem avisar!

O tuturial "dia 2" já está feito, mais logo em principio experimento este, mas tou com uma dúvida. Só tenho cá resistencias de 390ohms, será que acende alguma coisa?

Outra duvida, depois de ter feito upload do "Blink", como é que faço com que o Arduino pare de piscar o led? Isto é, como faço OFF ou reset ao bixo?
Título: Re: Dia 3 - Iniciar ao código do Arduino, com LEDs (Blink2)
Enviado por: TigPT em 20 de Julho de 2008, 18:18
Olá, agora estou no pda, o que dificulta um pouco a resposta, mas sim podes usar uma de 390, o que provoca é menos luz nos leds. mas nunca menos que 220 ohms, ou podes os queimar.. por isso eu aconselhar 330..

Quanto a desligar o arduino, ou tiras o jumper que ele tem ao pé da alimentação, ou removes a alimentação. depois corrijo o código.. Obrigado.

(editado)

Já vi o erro no código, do arduino, e vou corrigir, quanto às resistências, depois a ver se faço um post explicativo para que todos passem a entender, visto não ser magia nenhuma mas sim compreensível. Qualquer cosia não hesites em postar que nós te possamos ajudar, é para isso que o LusoRobotica serve  8-)
Título: Re: Dia 3 - Iniciar ao código do Arduino, com LEDs (Blink2)
Enviado por: msr em 21 de Julho de 2008, 15:00
Já fiz a experiência com 3 leds e realmente funcionou, apesar de 2 deles (os que levaram com 390ohms em série) brilharem com menos intensidade. Estava com receio é que a queda de intensidade fosse tanta que mal se visse luz  :D

OK, obrigado! Vou dando notícias à medida que for fazendo mais experiencias (e caso tenha acesso à net, pois com as férias pelo meio é capaz de não dar muitas vezes)
Título: Re: Dia 3 - Iniciar ao código do Arduino, com LEDs (Blink2)
Enviado por: TigPT em 21 de Julho de 2008, 15:21
Boa, fica então para referencia que 390 ainda dá, embora pouco.
Título: Re: Dia 3 - Iniciar ao código do Arduino, com LEDs (Blink2)
Enviado por: amando96 em 23 de Fevereiro de 2009, 14:59
Detectei uma pequena gralha nos comentários do código. Logo nas primeiras linhas, referes-te sempre ao pin 13, em vez de 11, 12 e 13. Não é que seja muito importante, mas achei por bem avisar!

O tuturial "dia 2" já está feito, mais logo em principio experimento este, mas tou com uma dúvida. Só tenho cá resistencias de 390ohms, será que acende alguma coisa?

Outra duvida, depois de ter feito upload do "Blink", como é que faço com que o Arduino pare de piscar o led? Isto é, como faço OFF ou reset ao bixo?

eu usei de 1K 1000 ohms... lol eu tenho mt receio de queimar LED's xD
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 23 de Fevereiro de 2009, 15:08
hahaha... fazes bem, desde que chegue para ver o led :P
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: amando96 em 23 de Fevereiro de 2009, 15:28
hahaha... fazes bem, desde que chegue para ver o led :P

via-se e mt! as vermelhas viam-se mais, por precisarem de menos coiso...
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Njay em 27 de Agosto de 2009, 00:44
Vejamos...

A corrente máxima num LED normal é cerca de 20mA. A luminosidade do LED é proporcional a esta corrente, ou seja, quanto maior a corrente mais luz, e vice-versa.

O cálculo apresentado pelo TigPT funciona perfeitamente na medida em que é um cálculo conservador, isto é, vão sempre dar a um LED uma corrente bastante abaixo dos tais 20mA "ideais" e portanto o LED está sempre "seguro".

Agora, se colocarem 5V, uma resistência de 220 Ohms e um LED e depois forem medir a corrente, qual é o valor dela? Quem é que aceita o desafio?
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 27 de Agosto de 2009, 00:52
Visto que um led típico mantém um ddp de 0,7v aos seus terminais, a corrente ideal para 1 único led ligado a uma alimentação de 5V é obtida com uma resistência de 195.(45) já que a tensão na resistência vai ser de 5-0,7

No caso apresentado a corrente real é apenas de 19,54mA (isto apenas por cálculos, mas que quiser agarrar num multímetro que confirme)
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Njay em 27 de Agosto de 2009, 00:59
Nope. Monta lá o circuito e mede :)...
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 27 de Agosto de 2009, 01:04
Então faz tu e depois posta tudo muito direitinho que eu de momento não tenho disponibilidade para desmentir a lei de ohm. ;)
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Njay em 27 de Agosto de 2009, 01:06
Lol!!... Não se trata de desmentir a Lei de Ohm, ela está correctissima (desde que andes bastante mais devagar do que a luz :), calculo). O "problema" está noutro lado.
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 27 de Agosto de 2009, 01:12
Então eu fico a aguardar que sua excelência se lembre de postar algo concreto para que todos fiquemos mais instruídos.
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: ricardo-reis em 27 de Agosto de 2009, 01:13
e então? quem tem a pilinha maior?

O "problema" está noutro lado.

onde tá o problema, njay.. (explica como se eu nunca tivesse visto as leis mais básicas à frente, sff)
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Njay em 27 de Agosto de 2009, 01:26
Montem o circuito e meçam que vão perceber. Vá lá, também são só 2 componentes.
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: ricardo-reis em 27 de Agosto de 2009, 01:28
como é k eu faço um multimetro dum palito e dum canivete suiço?? vá agora a sério.. n tenho multimetro, se n fazia-te a vontade.. podes-me dizer qual é o problema e explicar a tua visão da coisa? sff?
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Capeleiro em 27 de Agosto de 2009, 19:22
A mim ensinaram assim:


5V = 2,8V + 2,2V <=>                       \\ 2,8V = Queda de tensão de um LED típico
                                                        \\ 2,2V = Queda de tensão que a resistência deve ter para que a tensão dos dois
                                                        \\ componentes em série seja igual a tensão total do circuito (que deve ser 5V).

5V = 2,8V + IR <=>                           \\ Lei de Ohm (U = IR, ou, 2,2V = IR)

5V = 2,8V + 0,02A * R <=>                \\ I = 20mA = 0,02A. Simplesmente resolver a equação...

0,02R = 5V - 2,8V = 2,2 <=>

R = 2,2 / 0,02 = 110?


Eu acho que assim funciona, mas como não tenho multímetro também não posso confirmar...
Título: Re:[Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: ricardo-reis em 27 de Agosto de 2009, 19:49
em termos de contas deve tar tudo mt correcto..

um sr k sabe mt e k me costuma ensinar umas coisas, disse-me k o tal 'problema' devem ser as perdas entre resistencia do proprio led e mais umas perdas.. e talvez por isso o njay nos manda ir medir..
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 22 de Setembro de 2009, 22:12
TigPT, o ficheiro que tem a programação está corrompido(Blink2).

Eu queria praticar, diz-me uma coisa, posso colocar leds desde o pin 0 até ao 13 certo?
Cumprimentos
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: metRo_ em 22 de Setembro de 2009, 22:16
Sim, podes. E tambem podes usar os analogas sendo que o analog in 0 é o pino 14, o analog 1 o 15 e por ai fora.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 22 de Setembro de 2009, 22:19
O ficheiro do dia 4 também esta corrompido, também ja tentei outros ficheiros e diz que o problema e da fonte do ficheiro.
Metro onde e que posso ver uma explicação dos pins do arduino já vi no arduino.cc e não fiquei lá muito satisfeito.

Sabes algum site onde diz o quebra tensão e a corrente de leds?

Cumprimentos  e obrigado
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 22 de Setembro de 2009, 23:06
A quebra de tensão de um led varia mas anda normalmente nos 0,7v

Quanto aos ficheiros não está esquecido, vou tentar repor quanto antes.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 22 de Setembro de 2009, 23:30
Eu achei isto sobre a queda de tensão dos leds está certo no geral?
Côr    Queda de Tensão    Corrente Máxima
Vermelho    1.8 V    0.02 A
Verde    2.1 V    0.02 A
Amarelo    2.0 V    0.015 A
Laranja    2.0 V    0.02 A
Azul    3.1 V    0.02 A
Branco    3.1 V a 4.0V (depende do fabricante)    0.02 A
Infra-vermelho    1.1 V    0.02 A
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 28 de Setembro de 2009, 15:12
Reparei agora uma coisa, que tens a resistência depois do led a tocar no ground mas sempre vi circuitos com resistências antes dos leds,mas tanto faz porque a resistência limita a corrente?

Vi que o pin 13 acende o led do arduino e o led azul, estava com essa duvida se as duas se acendiam por a saída ter o mesmo número.

Quando conseguires corrigir os ficheiros avisa.
Cumprimentos
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Njay em 28 de Setembro de 2009, 20:53
Eu achei isto sobre a queda de tensão dos leds está certo no geral?
Côr    Queda de Tensão    Corrente Máxima
Vermelho    1.8 V    0.02 A
Verde    2.1 V    0.02 A
Amarelo    2.0 V    0.015 A
(...)

Sim, em geral está certa.

Disclaimer: fui eu que escrevi essa tabela.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 28 de Setembro de 2009, 21:46
Em que site? eu perdi o link XD

Cumprimentos
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Njay em 28 de Setembro de 2009, 21:49
Aqui: Como acender um LED? (http://troniquices.wordpress.com/2007/10/24/como-acender-um-led/)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 28 de Setembro de 2009, 21:55
Foste rápido assim não tenho de perder horas a procurar outra vez.
A primeira vez que comecei a brincar com leds, foi através do site que deste o link.

Obrigado
Cumprimentos
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Njay em 28 de Setembro de 2009, 21:57
Pois, então ainda bem que te foi útil, era mesmo essa a intenção que eu tinha quando o escrevi ;)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 21 de Outubro de 2009, 21:42
O ficheiro continua com problemas, o que eu queria retirar do ficheiro, é como se faz usar o jumper para servir de interruptor.

Cumprimentos
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: microbyte em 21 de Outubro de 2009, 22:38
Mas para usares um jumper nem precisas de código.
O jumper (se é o jumper que estou a pensar) é como um iterruptor. Basta ligá-lo em série com o LED (não esquecendo a resistência).
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 23 de Outubro de 2009, 22:58
Boa tarde.
Tenho uma duvida sobre usar um interruptor no arduino.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg10.imageshack.us%2Fimg10%2F4362%2Finterruptorarduino.jpg&hash=e89c195a07d173e28a59ebe8358c8c883cb43fd7) (http://img10.imageshack.us/i/interruptorarduino.jpg/)

A pergunta para vocês deve ser básica de responder, mas começasse sempre pelas coisas básicas.
A resistência de 10k ohm está no circuito porque quando ligo o interruptor a 1 ele leva 5 volt para o PIN input e como está ligado ao menos para não fazer curto circuito metesse uma resistência, isto é o que eu penso que para que serve a resistência neste circuito.
Se quisesse colocar apenas 0(zero) no PIN input bastava ligar só à terra.
Estou certo no que disse ou só disse disparates?
Uma outra pergunta, porque uma resistência de 10kohm porque não outro valor?


 


(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg25.imageshack.us%2Fimg25%2F1460%2Fcomutador.jpg&hash=76a0b061eaa52db00ced4aec867bc6643cc21f00) (http://img25.imageshack.us/i/comutador.jpg/)
Se o que disse sobre a parte da necessidade da resistência estiver certo, poderia usar um comutador para não ter a necessidade de usar um resistência, como está no esquema acima?


Tenho outra pergunta programei o meu arduino com este código que fiz,mas quando ele chega ao fim não mete os últimos leds a 0 assim começa o loop com eles já ligados. Mas eu não queria que ele fizesse isso.
Alguém me pode dar um dica do porque?

Código: [Seleccione]
const int PINS= 6; //PINS do output, numero da constante +1
int k;
int ledPin[]={7,8,9,10,11,12,13};
int inPin=2;

void setup()
{
for(int i=0;i<=PINS;i++){
    pinMode(ledPin[i],OUTPUT);
    pinMode(inPin,INPUT); 
  }
}

void loop(){
  if(digitalRead(inPin)==HIGH)
  for(k=0;k<=PINS;k++){
  digitalWrite(ledPin[k],HIGH);
  digitalWrite(ledPin[PINS-k],HIGH);
  delay(2000);
  digitalWrite(ledPin[k],LOW);
  digitalWrite(ledPin[PINS-k],LOW);
  }
}

Peço desculpa mas como só iniciante nisto e gosto de perceber bem dos circuitos para fazer os meus no futuro e como não estou num curso de electrónica pior ainda, vou vos chatear bastante.

Cumprimentos.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: metRo_ em 24 de Outubro de 2009, 12:01
1 - Questão da resistência.

O que disseste está +- correcto. A resistência encontra-se lá pelo seguinte:
   - Quando não estás a carrega no botão e queres que a entrada seja zero é necessário ligar à massa, pois se deixares o pino ao ar ninguém te garante que este zero ou 1 dai necessitares de ligares à massa.
   - Agora carregamos no botão, o que vamos fazer é fechar o circuito pela massa e no pino vais continuar sem conseguir definir o estado(utilização sem resistência) pois a corrente vai para a massa.

Assim sendo colocamos a resistência para definir o seguinte:
   -Quando o botão está aberto a corrente vai fluir pela massa. No entanto quando o botão está para baixo a corrente que vem da fonte (+5V) vai fluir para o pino pois a resistência do pino é menor que a resistência que colocas-te. Não é necessário ser 10Kohm, basta ser razoavelmente maior que a resistência do pino.

2 - Questão dos leds.

Código: [Seleccione]
const int PINS= 6; //PINS do output, numero da constante +1
int k;
int ledPin[]={7,8,9,10,11,12,13};
int inPin=2;

void setup()
{
for(int i=0;i<=PINS;i++){
    pinMode(ledPin,OUTPUT);
    pinMode(inPin,INPUT);
  }
}

Tens vários erros de programação.
O FOR é um ciclo que corre desde i=0 até i= PINS, logo neste caso o resultado vai ser:
  i=0;
    pinMode(ledPin,OUTPUT);
    pinMode(inPin,INPUT);

  i=1;
    pinMode(ledPin,OUTPUT);
    pinMode(inPin,INPUT);

  i=2;
    pinMode(ledPin,OUTPUT);
    pinMode(inPin,INPUT);

  i=3;
    pinMode(ledPin,OUTPUT);
    pinMode(inPin,INPUT);

  i=4;
    pinMode(ledPin,OUTPUT);
    pinMode(inPin,INPUT);

  i=5;
    pinMode(ledPin,OUTPUT);
    pinMode(inPin,INPUT);

  i=6;
    pinMode(ledPin,OUTPUT);
    pinMode(inPin,INPUT);

Mas tu se reparares a única coisa que estás a fazer é estar a executar 7 vezes o seguinte código:

    pinMode(ledPin,OUTPUT);
    pinMode(inPin,INPUT);

E executar 7 vezes este código vai ser o mesmo que executar uma.
Para acederes a um vector tens que fazer por exemplo ledPin[3] que neste caso seria igual a: 10 pois tens (considera a itálico o numero da posição no vector):

                    0 1 2  3   4   5   6
int ledPin[]={7,8,9,10,11,12,13};

Agora que já sabes o que faz o ciclo FOR e como aceder a um vector corrige esta parte do dentro do void setup() e eu depois explico-te o resto.

Quer dizer tu deves saber isto pois em baixo tens correcto o acesso ao vector mas só reparei agora por isso de qualquer das maneiras fica a explicação.

Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 24 de Outubro de 2009, 13:14
Então quer dizer que posso fazer aquilo que estava  dizer com o comutador.
Quando esrevi isto,
"Não sei como quando copiei o meu código ele tinha e tem o [ i ] no void setup,mas quando colei aqui ele desapareceu XD,mas está no meu código no arduino."
reparei que ao escrever o [ i ] mas pegados o programa de escrita faz ele desaparecer no post.

Continuo sem perceber porque que o programa quando chega ao fim não mete os últimos leds a 0 assim começa o loop com eles já ligados. Mas eu não queria que ele fizesse isso.

Desculpa esta ultima pergunta mas também quero ser mais autónomo, onde é que aprendeste essa explicação do interruptor? que sem a resistência ele não sabe se é 0 ou 1.


Cumprimentos
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: metRo_ em 25 de Outubro de 2009, 00:28
Citar
Desculpa esta ultima pergunta mas também quero ser mais autónomo, onde é que aprendeste essa explicação do interruptor? que sem a resistência ele não sabe se é 0 ou 1.

Tem haver com a resistência do ar, etc. É possivel a nível da configuração do micro-controlador definir o estado, tens um post muito bom: http://lusorobotica.com/index.php/topic,1069.0.html (http://lusorobotica.com/index.php/topic,1069.0.html) já lhe pedi para actualizar o link.

Experimenta colocar o código utilizando as tagas [code']['/code]
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Njay em 25 de Outubro de 2009, 02:20
A resistência de 10k ohm está no circuito porque quando ligo o interruptor a 1 ele leva 5 volt para o PIN input e como está ligado ao menos para não fazer curto circuito metesse uma resistência, isto é o que eu penso que para que serve a resistência neste circuito.
Certo. (nota: escreve-se "mete-se")

Citação de: Raul
Se quisesse colocar apenas 0(zero) no PIN input bastava ligar só à terra.
Estou certo no que disse (...)?
Certo, além do que o _metRo já acrescentou, mas à excepção de
Citação de: _metRo
-Quando o botão está aberto a corrente vai fluir pela massa.
Não flui corrente pela massa. Bom, na verdade até flui, mas é tão tão minúscula que toda a gente a ignora pois não tem valor para ter qualquer efeito visivel.
Citar
No entanto quando o botão está para baixo a corrente que vem da fonte (+5V) vai fluir para o pino pois a resistência do pino é menor que a resistência que colocas-te.
A resistência do pino, configurado como entrada, é muitas vezes maior do que os 10K. Deve ser qualquer coisa como 100 MOhm (100000 KOhm).

Citação de: Raul
Uma outra pergunta, porque uma resistência de 10kohm porque não outro valor?
A escolha do valor é um equilibrio entre 2 coisas: consumo e sensibilidade ao ruído (eléctrico). Quanto maior for a resistência, mais sensível a entrada será ao ruído ambiente. Quanto menor for, mais irá consumir da fonte de alimentação quando carregas no botão.

Uma brincadeira que é capaz de funcionar é que se colocarem essa resistência muito alta (talvez 3.3MOhm ou mesmo mais), podem fazer um botão de "toque", em que ele activa se vocês tocarem com os dedos entre os +5V e pino. Mas se depois trocares a resistência por uma de 10K provavelmente já não funciona.

Podes usar um comutador como disseste, mas um comutador desses é muito mais caro do que um botão simples, e é dificil encontrá-los assim pequeninos como os botões simples.

Se fizeres o esquema do botão "ao contrário", isto é, o botão liga o pino à massa, podes omitir a resistência a ligar o pino aos 5V se activares o "pull-up" interno do AVR. Este pull-up é uma resistência interna que "puxa" (pull) o pino para os 5V (up), e pode ser ligado/desligado. A diferença é que no software passas a ler 0 (zero) quando o botão está carregado e 1 quando está solto.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: metRo_ em 25 de Outubro de 2009, 10:59
Citação de: Raul
Se quisesse colocar apenas 0(zero) no PIN input bastava ligar só à terra.
Estou certo no que disse (...)?
Certo, além do que o _metRo já acrescentou, mas à excepção de
Citação de: _metRo
-Quando o botão está aberto a corrente vai fluir pela massa.
Não flui corrente pela massa. Bom, na verdade até flui, mas é tão tão minúscula que toda a gente a ignora pois não tem valor para ter qualquer efeito visivel.

Citar
No entanto quando o botão está para baixo a corrente que vem da fonte (+5V) vai fluir para o pino pois a resistência do pino é menor que a resistência que colocas-te.
A resistência do pino, configurado como entrada, é muitas vezes maior do que os 10K. Deve ser qualquer coisa como 100 MOhm (100000 KOhm).

Quanto a resistência do pino tens toda a razão, não sei porque disse aquilo :s devia estar a pensar noutra coisa qualquer.
Quanto a corrente fluir pela massa era só para ser + fácil de perceber.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Raul em 25 de Outubro de 2009, 11:27
Muito obrigado por esclarecerem todas as minhas dúvidas.


Cumprimentos
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Alhiados em 24 de Março de 2010, 20:21
Boas, ja fiz os passos anteriores, mas cheguei ate ao passo três, mas no vídeo tem la um fio azul que nao vem no kit de iniciante!!!
Que devo fazer!!
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: senso em 24 de Março de 2010, 21:12
A cor do fio é irrelevante, ou é o kit que não tem fios que chege?
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Alhiados em 24 de Março de 2010, 21:19
Então o que esta dentro desta caixa são cabos??? http://loja.lusorobotica.com/prototipagem/33-breadboard-e-kit-de-fios.html (http://loja.lusorobotica.com/prototipagem/33-breadboard-e-kit-de-fios.html)
Se são devo usar só um deles, dos grandes, para fazer aquela ligação???
Se sim podias me ajudar para ver onde ligo o quê na Breadboard??

Abraço!!
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: senso em 24 de Março de 2010, 21:24
Sim, isso são fios para ligar do arduino á breadboard.
Tens de usar um fio de cada saida do arduino a cada anodo de cada led através de uma resistência de 330Ohm e depois ligas todos os cátodos dos led's ao gnd(massa) do arduino
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Alhiados em 24 de Março de 2010, 22:13
A meu ver so me falta o código, eu faço o download do blink2.rar mas faz erro, tenho de extrair ou não???
E ele no vídeo mete no arduino uma peça azul que tive a ver mas acho que nao tenho!!!
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: senso em 24 de Março de 2010, 22:55
Sim, tens de o extrair, lá dentro deve ter um ficheiro .pde
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Alhiados em 24 de Março de 2010, 22:57
Esta é a quinta vez que eu faço o download da sempre o mesmo erro, tenta tu!?
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: senso em 24 de Março de 2010, 23:04
Manda uma pm ao tigpt, parece que o ficheiro está corrompido.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 24 de Março de 2010, 23:46
Fiz um código que gerará um efeito semelhante ao do vídeo agora em alguns segudos, e não foi testado pelo que não prometo que esteja igual mas serve para o efeito.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Alhiados em 25 de Março de 2010, 22:48
Eu fiz um pouco diferente do vídeo, mas ficou fixe na mesma!!!
Mesmo com o codigo que o TigPT me fez a pressa, alterei um pouco mas ficou fixe!!

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fphotos-e.ak.fbcdn.net%2Fhphotos-ak-ash1%2Fhs437.ash1%2F24129_1212719892351_1659411484_464748_3614322_n.jpg&hash=f6076107c9b3540151854180004d62c4d3507992)

Este foi o codigo que usei:
Código: [Seleccione]
int led1 =  9;    // LED connected to digital pin 9
int led2 =  10;    // LED connected to digital pin 10
int led3 =  11;    // LED connected to digital pin 11

// The setup() method runs once, when the sketch starts

void setup()   {               
  // initialize the digital pin as an output:
  pinMode(led1, OUTPUT);     
  pinMode(led2, OUTPUT);     
  pinMode(led3, OUTPUT);     
}

// the loop() method runs over and over again,
// as long as the Arduino has power

void loop()                     
{
  digitalWrite(led1, HIGH);   // set the LED on
  delay(1000);                  // wait for a second
  digitalWrite(led2, HIGH);   // set the LED on
  delay(1000);                  // wait for a second
  digitalWrite(led3, HIGH);   // set the LED on
  delay(1000);                  // wait for a second
  digitalWrite(led1, LOW);    // set the LED off
  delay(1000);                  // wait for a second
  digitalWrite(led2, LOW);    // set the LED off
  delay(1000);                  // wait for a second
  digitalWrite(led3, LOW);    // set the LED off
  delay(1000);                  // wait for a second
}
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: AcidDagger em 26 de Março de 2010, 20:58
Muito Bom  :D
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Alhiados em 26 de Março de 2010, 21:05
Obrigado, ainda estou a apanhar isto do código, mas com o tempo vou lá, fiz um agora com um que so se liga quando carrego o botão!!!
Depois meto aqui o vídeo e o código que usei!!
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 30 de Março de 2010, 02:30
Está quase um semáforo :P
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Alhiados em 30 de Março de 2010, 13:12
Bem no outro dia eu tive a mostrar +- aquilo que eu fiz ao meu professor e ele me deu a ideia de usar aquilo que eu tinha feito e acrescentar um botão para que os LEDs só façam a sequência de luzes se eu carregar do botão!! E foi o que eu fiz, tive um pouco de ajuda da parte do amando96 que me deu o link de um site onde tem um exemplo de como ligar um botão (http://www.arduino.cc/en/Tutorial/Pushbutton (http://www.arduino.cc/en/Tutorial/Pushbutton)), e eu me orientei a partir dai.
Arduino Duemilanove c/ Atmega328 Com 3 LEDs e um botão (http://www.youtube.com/watch?v=Sww4CJv9z24&feature=player_embedded#)

E o código que usei, usei como base a do tutorial do Arduino passo-a-passo part3 (http://lusorobotica.com/index.php/topic,22.0.html (http://lusorobotica.com/index.php/topic,22.0.html)), e tentei juntar parte do código do site que o amando96 me deu, e resultou bem. Foi uma dor de cabeça mas la cheguei, isso é que importa!!!
Código: [Seleccione]
int led3 = 11;
int led2 = 10;
int led1 = 9;
int inPin = 1;
int val = 0;   

void setup() {
  pinMode(led3, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(inPin, INPUT);   
}

void loop(){
  val = digitalRead(inPin); 
  if (val == HIGH) {         
    } else {
    digitalWrite(led3, HIGH);
    delay(1000);   
    digitalWrite(led2, HIGH);
    delay(1000);   
    digitalWrite(led1, HIGH);
    delay(1000);
    digitalWrite(led3, LOW);
    delay(1000);
    digitalWrite(led2, LOW);
    delay(1000);
    digitalWrite(led1, LOW);
    delay(1000);
  }
}

Deixo desde ja um grande obrigado ao pessoal que me tem ajudado 8) ;) 8)!!!
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 01 de Abril de 2010, 00:27
Muito bem, muito bem.

E obrigado pelo vídeo e código, irá certamente ajudar os próximos a passar por aqui!
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: AcidDagger em 02 de Abril de 2010, 21:46
Isto funciona com um led RGB?  :P
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 02 de Abril de 2010, 21:51
Sim sim!
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 07 de Julho de 2010, 19:11
Boas, estou a usar um led RGB para isso ( 4 terminais) sendo o mais comprido o que tenho de ligar ao GND então a pergunta é, só preciso de uma resistência de 220 Ohm ligada em serie ao GND? ou as resistências ligam aos positivos?

...desde já obrigado e boa continuação  ;)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: senso em 07 de Julho de 2010, 19:22
Tens de ver se é anodo ou cátodo comum.
Os que tenho são de cátodo comum, logo a perna mais comprida é para ligar á massa, as resistencias ligas aos positivos, até porque se depois quiseres usar o led com pwm para teres muitas cores, até se costuma usar resistencia de valores diferentes porque os led's são diferentes uns dos outros.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 07 de Julho de 2010, 19:37
Obrigado pela resposta senso, e sim o cátodo é comum são estes ( http://loja.lusorobotica.com/72-triple-output-led-rgb-diffused.htm (http://loja.lusorobotica.com/72-triple-output-led-rgb-diffused.htm) ) mas agora para experiência posso usar resistências de 220 Ohm, certo? Depois ver se faço isso que diz de mudar para muitas cores com o PWM

Abraços e boa continuação  ;)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 07 de Julho de 2010, 20:26
Obrigado pela resposta senso, e sim o cátodo é comum são estes ( http://loja.lusorobotica.com/72-triple-output-led-rgb-diffused.htm (http://loja.lusorobotica.com/72-triple-output-led-rgb-diffused.htm) ) mas agora para experiência posso usar resistências de 220 Ohm, certo? Depois ver se faço isso que diz de mudar para muitas cores com o PWM

Abraços e boa continuação  ;)
http://lusorobotica.com/index.php?topic=2465.msg24557#msg24557 (http://lusorobotica.com/index.php?topic=2465.msg24557#msg24557)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 08 de Julho de 2010, 00:34
Boas noites, obrigado pelo link, e já agora que código uso o mesmo que antes ( Blink2 ) ?
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 08 de Julho de 2010, 00:47
Penso que esta resolvido, do codigo blink2 alterei os pins e os LOW's pelos HIGH's pode não ser a forma correcta mas deu  ;D

Editado: já vi que trocando ou não os low e high é igual, com os erros se aprende...
Obrigado
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 08 de Julho de 2010, 02:25
Boas noites, precisava de ajuda se possível, estou a ligar o LED RGB como indicado alterei o codigo para ter mais cores mas no intervalo de cada cor apresenta uma cor branca como elimino o branco?

Obrigado
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: senso em 08 de Julho de 2010, 02:26
O branco é quando tens as 3 cores ligadas, para o evitar não leves o pwm aos 255 ou varia sempre os valores.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 08 de Julho de 2010, 02:41
boas senso, eu já experimentei isso mas não deu pode ser do código que inventei lol, porque isto é tudo novo para mim vou meter aqui o código para poder ver o que esta não que deve de ser tudo...

Código: [Seleccione]
int red =  9;
int green =  10;
int blue =  11;

void setup()   {
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(blue, OUTPUT);
}

void loop()                     
{
 digitalWrite(red, 255);
 delay(1000);
 digitalWrite(red, 0);
 delay(1000);
 digitalWrite(red, 255);
 digitalWrite(green, 255);
 delay(1000);
 digitalWrite(red, 0);
 digitalWrite(green, 0);
 delay(1000);
 digitalWrite(green, 200);
 delay(1000);
 digitalWrite(green, 0);
 delay(1000);
 digitalWrite(green, 255);
 digitalWrite(blue, 255);
 delay(1000);
 digitalWrite(green, 0);
 digitalWrite(blue, 0);
 delay(1000);
 digitalWrite(blue, 255);
 delay(1000);
 digitalWrite(blue, 0);
 delay(1000);
 digitalWrite(blue, 255);
 digitalWrite(red, 255);
 delay(1000);
 digitalWrite(blue, 0);
 digitalWrite(red, 0);
 delay(1000);
 }

se poder ajudar a dar umas luzes para ver se entendo melhor o porque, agradecia, porque só consegui meter o led a piscar assim dessa forma o que pode não ser o correcto.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 08 de Julho de 2010, 02:43
Visto que o LED é active Low, não podes ter todos os pins a LOW ou a 0 no caso de PWM

Um led RGB é nada mais, nada menos do que 3 leds no mesmo encapsulamento. Se ligares as 3 cores, obténs a mistura das mesmas (branco) à semelhança das televisões.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 08 de Julho de 2010, 02:56
Boas TigPT, obrigado, percebi já esta melhor mais uns toque e fica bom, e já agora, quando meti o código aqui no post ficou sem essa caixa que esta agora como faço isso?

Abraços e boa continuação  ;)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: senso em 08 de Julho de 2010, 03:00
Experimenta este código, deve ser só copiar e enviar para a placa que não tem erros, e dá um efeito rgb brutal:
Código: [Seleccione]
  int RedVal=1;
  int BlueVal=1;
  int GreenVal=1;
 
  int redPin=9;
  int bluePin=11;
  int greenPin=10;
 
  int i=1;
  void setup() {}

void loop() {
 
  analogWrite(redPin,255-RedVal);
  analogWrite(bluePin,255-BlueVal);
  analogWrite(greenPin,255-GreenVal);
 
  RedVal =((i<255)*i)+((i>=255)*255)+((i>511)*(512-i))+((i>766)*(i-766))+((i>=1276)*(i-1276))+((i>1530)*(1530-i))+((i>1786)*(1786-i));
  GreenVal =(i<256)*(1)+(i>255)*(i-255)+(i>510)*(510-i)+(i>1020)*(1020-i)+(i>1274)*(i-1274)+(i>1530)*(i-1531)+(i>1785)*(3571-(2*i));
  BlueVal =(i<764)*(1)+(i>765)*(i-765)+(i>1020)*(1020-i)+(i>1786)*(1786-i);

  if(i>2040){
   i = 1;
  }
 
  i++;
  delay(30);
 
}
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 08 de Julho de 2010, 03:10
Obrigado senso, é realmente brutal  :o , fiquem de boca aberta literalmente, ainda eu dizia que mais uns toques no código que tinha fica bom, parabéns pelo código e mais uma vez obrigado.

continua nesse bom caminho, abraços  ;)   
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: senso em 08 de Julho de 2010, 03:20
Experimenta fazer tipo uma meia bola com uma folha de papel, o mais facil é amassar o papel numa bola e depois ir tipo abrindo a bola de novo até ficares com uma cupula, metes por cima do led e funciona como um difusor e assim a cor do led é mais uniforme a menos intensa e assim distingue-se melhor as cores.
Isso ou bolas de ping-pong, tenho de ir investigar os chineses para ver se há assim a preço super baixo, um furinho em baixo para enfiar o led e tambem dá um bom difusor de cor.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 08 de Julho de 2010, 03:44
Como estava a seguir o video do TigPT fiz como ele nessa parte, uma bola de papel, mas quando falaste da bola de ping-pong experimentei fazer uma de papel do tamanho dessas de ping-pong e vê-se melhor as cores, a ideia de usar bolas com um furo e óptima assim que passar ao chinês também procuro a ver tem la a venda.

obrigado e uma boa continuação  ;)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: LoneWolf em 08 de Julho de 2010, 21:47
Boas noites a todos, deixo aqui um vídeo espero que gostem,

http://yfrog.com/jv08072010028z (http://yfrog.com/jv08072010028z)

..a ideia das bolas de Ping-Pong foi do senso e o código também,

Obrigado a todos e boa continuação  ;)
 
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 18 de Julho de 2010, 15:47
Ficou com cores fenomenais!
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Afonso em 10 de Agosto de 2010, 18:45
arduino dia 3 (http://www.youtube.com/watch?v=lUZSkh8lXMA#) 8)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 10 de Agosto de 2010, 18:50
Muito bem Afonso ;)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Afonso em 10 de Agosto de 2010, 18:55
Obrigado.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Afonso em 10 de Agosto de 2010, 18:56
Primeira aula com Arduino (http://www.youtube.com/watch?v=w8LThzwPah0#)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: TigPT em 10 de Agosto de 2010, 19:16
Obrigado por partilhares Afonso. Infelizmente não há muitas escolas a fazer estas actividades, mas começam a surgir cada vez mais. Mostrem o que se faz de bom para que as outras sigam o exemplo.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Afonso em 10 de Agosto de 2010, 19:29
De nada.
Continua com o optimo trabalho Tiago.
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: Afonso em 10 de Agosto de 2010, 20:16
arduino (http://www.youtube.com/watch?v=oKTwqx4WHVk#)
Título: Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
Enviado por: e.preto em 27 de Janeiro de 2012, 15:26
Ola amigos,
Estou agora a iniciar na robótica, e este forum está a ser uma grande ajuda, infelizmente o video desta aula não funciona, não sei se só se passa comigo, será que podiam publicar novamente? :)
Abraço.