collapse

* Posts Recentes

O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Emulador NES em ESP32 por dropes
[10 de Abril de 2024, 15:30]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs  (Lida 66997 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #30 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

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #31 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).

Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #32 em: 23 de Outubro de 2009, 22:58 »
Boa tarde.
Tenho uma duvida sobre usar um interruptor no arduino.


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?


 



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.
« Última modificação: 24 de Outubro de 2009, 21:33 por TigPT »

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #33 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.


Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #34 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
« Última modificação: 24 de Outubro de 2009, 13:52 por Raul »

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #35 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 já lhe pedi para actualizar o link.

Experimenta colocar o código utilizando as tagas [code']['/code]

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #36 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.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #37 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.

Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #38 em: 25 de Outubro de 2009, 11:27 »
Muito obrigado por esclarecerem todas as minhas dúvidas.


Cumprimentos

Offline Alhiados

  • Mini Robot
  • *
  • Mensagens: 32
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #39 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!!

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #40 em: 24 de Março de 2010, 21:12 »
A cor do fio é irrelevante, ou é o kit que não tem fios que chege?
Avr fanboy

Offline Alhiados

  • Mini Robot
  • *
  • Mensagens: 32
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #41 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
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!!

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #42 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
Avr fanboy

Offline Alhiados

  • Mini Robot
  • *
  • Mensagens: 32
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #43 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!!!
« Última modificação: 24 de Março de 2010, 22:21 por Alhiados »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: [Arduino]Dia 3 - Iniciar ao código do Arduino, com LEDs
« Responder #44 em: 24 de Março de 2010, 22:55 »
Sim, tens de o extrair, lá dentro deve ter um ficheiro .pde
Avr fanboy