Go Down

Topic: Problemas com pinMode() (Read 146 times) previous topic - next topic

GrandFord

Jun 14, 2019, 02:34 pm Last Edit: Jun 14, 2019, 03:06 pm by GrandFord
  Bom dia glr!, sou estudante de Arduíno e tive que fazer um circuito bem simples mais que esta me causando um pouco de dor de cabeça.

Preciso criar um pisca-pisca onde tenho 5 led's  e que eles liguem de forma ordenada e apague da mesma forma.
ex. LED 1 HIGH , LED1 LOW, LED2 HIGH, LED2 LOW, ... LED5 HIGH, LED 5 LOW.

ate ai tranquilo o problema foi na declaração no void setup() , o professor pediu pra gente declarar da seguinte forma:

Code: [Select]

void setup()
{
    for(int LED=1;LED>5;LED++)
     {
        pinMode(LED,OUTPUT);
      }
}


ai que esta o problema, se eu declarar dessa forma a tensão nas saídas fica muito baixa (em torno de1,7V) e meus led acendem muito fracos e não são saídas PWM .


agora se eu declarar as saídas de forma tradicional pinMode(1,OUTPUT)... pinMode(5,OUTPUT); , o circuito funciona perfeitamente (+5V em cada saida)...


Porque isso acontece?? de sair 1,7V +- nas saídas se elas foram declaradas como OUTPUT pela repetição FOR e se for declarada de forma manual uma a uma não da esse problema.... Até o Professor não soube me explicar ... por isso estou com essa duvida se alguém puder me ajudar


(estou usando resistor de 350Ohms em cada led.)
 

bubulindo

Sabes utilizar o ciclo for??

for (Inicialização; Teste; Actualização)...

Sendo assim o teu programa:

Code: [Select]
for(int LED=1;LED>5;LED++)

LED =1 ; Enquanto LED MAIOR que 5; Incrementa LED...

Como LED é igual a 1, não é MAIOR que 5 e o laço não faz nada.
This... is a hobby.

GrandFord

#2
Jun 14, 2019, 11:47 pm Last Edit: Jun 15, 2019, 12:14 am by GrandFord
Ok, tinha digitado símbolo errado, eu alterei mais  o problema ainda persiste..... A saídas não estão enviando 5V... E sim +-1,7V....

bubulindo

Coloca aqui o código todo.

Se preferires, para testar o teu ciclo, podes fazer isto:

Code: [Select]
void setup()
{
    for(int LED=1;LED<=5;LED++)
     {
        pinMode(LED,OUTPUT);
        Serial.print("LED Configurado: ");
        Serial.println(LED);
      }
}


Poderá ser um conflicto com uma biblioteca ou com alguma coisa que faças no código.
Se mostrares tudo eu ou outros podem tentar descobrir o que é isso.
This... is a hobby.

vcmorini

#4
Jul 08, 2019, 02:35 pm Last Edit: Jul 08, 2019, 02:38 pm by vcmorini
Nao faz sentido.
Por favor, coloque o codigo completo.
Mande uma foto do seu setup.
De um delay(500) entre os set-ups dos OUTPUT pins.
Voce esta usando uma fonte estável para alimentar o arduino?

Espero seu feedback.

Abracos
Simplicity is the final achievement. Chopin.

WeiderAju

GrandFord,


      O Bubulindo tá certo, o erro tá no sinal de codigo do FOR, se você usou ++, o sinal do comparador deve ser <=     ;

     Bem, se isso não esta rolando, e suas portas não estão com a saida 5v correta, a dica é:  faça a moda antiga, de um por um, já que se trata apenas de 5 pinos.

pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);

e por ai vai.

  Mas lembra que pra o pino dar os 5v,  vocÊ precisa escrever

digitalWrite(1, HIGH);

  Senão ele vai dar baixo realmente.


   Ou seja, tenta do modo tradicional, e vê se tá tudo ok,  se der problema, tenta pino por pino, e vê se tá tudo ok.
   Se mesmo do modo tradicional e dando o HIGH, ele ainda não ligar,  tente fazer em um segundo arduino, pois o seu pode estar com problemas.

Go Up