Go Down

Topic: Perguntas de iniciante (Read 2572 times) previous topic - next topic

Oenning

Olá, estou começando a brincar com o Arduino e fiquei com algumas dúvidas.

1) Qual a maneira correta de "parar" o Arduino? Explico melhor: Estou com ele conectado no USB executando um determinado código em um determinado circuito. Ai eu preciso adicionar alguns componentes e alterar um pouco do código. Atualmente o que eu faço é "desplugar" a USB do notebook. Faço as alterações e "plugo" novamente. Está correto isso? Não tem a possibilidade de estragar algo?

2) Existe algum limite de upload para Arduino? Eu li que as memórias EEPROM suportam no máximo 100.000 remoção/escrita e leitura infinita. Isso se aplica ao Arduino?

3) Conectei um LED no oin 10, fiz o digitalWrite(10, HIHG) e não setei o pinMode(10, OUTPUT). Mesmo assim, o LED acendeu, bem fraco, mas acendeu. Quando coloquei o código pinMode(10, OUTPUT), ele continuou aceso, mas dessa vez, bem mais forte (conforme o esperado). A questão é, por que eu ele acendeu mesmo não setando o modo como OUTPUT?

trunet


1) Qual a maneira correta de "parar" o Arduino? Explico melhor: Estou com ele conectado no USB executando um determinado código em um determinado circuito. Ai eu preciso adicionar alguns componentes e alterar um pouco do código. Atualmente o que eu faço é "desplugar" a USB do notebook. Faço as alterações e "plugo" novamente. Está correto isso? Não tem a possibilidade de estragar algo?

É isso mesmo. O microcrontrolador foi feito para funcionar desta maneira. tudo que está no LOOP() roda para sempre e pronto.


2) Existe algum limite de upload para Arduino? Eu li que as memórias EEPROM suportam no máximo 100.000 remoção/escrita e leitura infinita. Isso se aplica ao Arduino?

Sim, existe. O limite de tamanho do programa compilado no uno é ~30k e no mega2560 é ~254k. (os 2k é por causa do bootloader que usa memória flash). Quanto ao limite de escrita/remoção deve ser por volta disso mesmo.


3) Conectei um LED no oin 10, fiz o digitalWrite(10, HIHG) e não setei o pinMode(10, OUTPUT). Mesmo assim, o LED acendeu, bem fraco, mas acendeu. Quando coloquei o código pinMode(10, OUTPUT), ele continuou aceso, mas dessa vez, bem mais forte (conforme o esperado). A questão é, por que eu ele acendeu mesmo não setando o modo como OUTPUT?

Não sei precisar isso mas provavelmente deve ser por causa do resistor pull-up do pino no uC.

fabiosegundo

Olá pessoal, boa noite!
Estou querendo fazer um projeto de monitoria de canais, TV.
onde queria criar um arduino que identificasse um canal fora do ar, ou tela black através do receptor de tv. (decoder).
tem como??

Claudemiro

Olá pesooal, bom dia !!!!

Por favor me ajudem !!!!!! preciso usar os comandos if e while.

Preciso criar bum programa com 3 botões e 1 led.
Quando o botão 1 for pressionado o programa deverá armazenar a quantidade de vezes que foi pressionado, e quando o botão "ENTER" (3) for pressionado, o programa deverá acender e apagar o led a quantidade de vezes que o botão 1 foi pressionado.
Caso a pessoa deseje diminuir a quantidade de vezes que o led piscará, deverá utilizar o botão 2 (antes de apertar o ENTER).

Lidiane

Sou iniciante na programação de arduino e estou precisando comunicar um programa com uma página HTML, minha dúvida é como montar o código que irá criar um botão na página web que quando pressionado irá ligar uma saída do arduino.

Wiring

#5
Oct 17, 2016, 09:20 pm Last Edit: Oct 17, 2016, 09:31 pm by Wiring
Olá pesooal, bom dia !!!!

Por favor me ajudem !!!!!! preciso usar os comandos if e while.

Preciso criar bum programa com 3 botões e 1 led.
Quando o botão 1 for pressionado o programa deverá armazenar a quantidade de vezes que foi pressionado, e quando o botão "ENTER" (3) for pressionado, o programa deverá acender e apagar o led a quantidade de vezes que o botão 1 foi pressionado.
Caso a pessoa deseje diminuir a quantidade de vezes que o led piscará, deverá utilizar o botão 2 (antes de apertar o ENTER).

Traquilo Claudemiro.

Faz assim que não tem erro:

int conta=0;   // armazena o numero de vezes que o botão é pressionado
int i;

void loop () {

if (!botao1)
{
     delay(300);
     conta++;  // Se o botao1 for pressionado incrementa a variável conta
}

if (!botao2)
{
     delay(300);
     conta--;    // Se o botao2 for pressionado decrementa a variável conta

if (!botao3)
{
     delay(300);
     for(i=0;i<conta;i++)
     {
      digitalWrite(led,HIGH);
      delay(500);
      digitalWrite(led,LOW);
      delay(500);
     }
    conta=0;
}

IMPORTANTE: O delay de 300ms é importante por causa do efeito debounce, senão o programa vai interpretar que vc apertou os botões várias vezes

Bom claro que ainda faltam declarar e configurar os botões, escrever as linhas de comando de leitura dos botões etc...mais ai acredito que vc já sabe como fazer por isso não coloquei

tecdiego

Olá pesooal, bom dia !!!!

Por favor me ajudem !!!!!! preciso usar os comandos if e while.

Preciso criar bum programa com 3 botões e 1 led.
Quando o botão 1 for pressionado o programa deverá armazenar a quantidade de vezes que foi pressionado, e quando o botão "ENTER" (3) for pressionado, o programa deverá acender e apagar o led a quantidade de vezes que o botão 1 foi pressionado.
Caso a pessoa deseje diminuir a quantidade de vezes que o led piscará, deverá utilizar o botão 2 (antes de apertar o ENTER).

Faltam muitas informações, como por exemplo, quanto tempo o led deve permanecer aceso? A necessidade de colocar limite?

Code: [Select]
int numeroPiscadas = 0;

botaoAumenta = 3;

botaoDiminui = 4;

piscaLed = 5;

led = 6;

tempoPisca = 100;

boolean verificaBotaoUp = false;

boolean verificaBotaoDown = false;


void setup(){

  pinMode(botaoAumenta,INPUT);

  pinMode(botaoDiminui,INPUT);

  pinMode(piscaLed, INPUT);

  pinMode(led, OUTPUT);

}

void loop(){

  if((digitalRead(botaoAumenta)== HIGH) && (verificaBotaoUp == false)){
   
      numeroPiscada++;

      verificaBotao = true;

  }  else {
 
      verificabotaoUP = false;

  }


  if((digitalRead(botaoDiminiu)== HIGH) && (verificaBotaoDown == false)){

     if(numeroPiscada > 0) {

         numeroPiscada--;

     }

     verificaBotaoDown = true;

  } else {

     verificaBotaoDown = false;

  }

  if(digitalRead(botaoAumenta)== HIGH){

     for(int i =0; i<=numeroPiscadas; i++) {

        digitalWrite(led,HIGH);

        delay(tempoPisca/2);
       
        digitalWrite(led,LOW);

        delay(tempoPisca/2);

     }


}

tecdiego

Olá pesooal, bom dia !!!!

Por favor me ajudem !!!!!! preciso usar os comandos if e while.

Preciso criar bum programa com 3 botões e 1 led.
Quando o botão 1 for pressionado o programa deverá armazenar a quantidade de vezes que foi pressionado, e quando o botão "ENTER" (3) for pressionado, o programa deverá acender e apagar o led a quantidade de vezes que o botão 1 foi pressionado.
Caso a pessoa deseje diminuir a quantidade de vezes que o led piscará, deverá utilizar o botão 2 (antes de apertar o ENTER).

Faltou um pedaço do código, segue abaixo corrigido.
Olá pesooal, bom dia !!!!

Por favor me ajudem !!!!!! preciso usar os comandos if e while.

Preciso criar bum programa com 3 botões e 1 led.
Quando o botão 1 for pressionado o programa deverá armazenar a quantidade de vezes que foi pressionado, e quando o botão "ENTER" (3) for pressionado, o programa deverá acender e apagar o led a quantidade de vezes que o botão 1 foi pressionado.
Caso a pessoa deseje diminuir a quantidade de vezes que o led piscará, deverá utilizar o botão 2 (antes de apertar o ENTER).

Faltam muitas informações, como por exemplo, quanto tempo o led deve permanecer aceso? A necessidade de colocar limite?

Code: [Select]
int numeroPiscadas = 0;

botaoAumenta = 3;

botaoDiminui = 4;

piscaLed = 5;

led = 6;

tempoPisca = 100;

boolean verificaBotaoUp = false;

boolean verificaBotaoDown = false;


void setup(){

  pinMode(botaoAumenta,INPUT);

  pinMode(botaoDiminui,INPUT);

  pinMode(piscaLed, INPUT);

  pinMode(led, OUTPUT);

}

void loop(){

  if((digitalRead(botaoAumenta)== HIGH) && (verificaBotaoUp == false)){
  
      numeroPiscada++;

      verificaBotao = true;

  }  else {
 
      verificabotaoUP = false;

  }


  if((digitalRead(botaoDiminiu)== HIGH) && (verificaBotaoDown == false)){

     if(numeroPiscada > 0) {

         numeroPiscada--;

     }

     verificaBotaoDown = true;

  } else {

     verificaBotaoDown = false;

  }

  if(digitalRead(botaoAumenta)== HIGH){

     for(int i =0; i<=numeroPiscadas; i++) {

        digitalWrite(led,HIGH);

        delay(tempoPisca/2);
        
        digitalWrite(led,LOW);

        delay(tempoPisca/2);

     } //FALTOU ESSA PARTE DO CÓDIGO

   numeroPiscadas = 0;
   } // ATÉ AQUI


}

Daniloccq2017

Boa noite pessoal, estou desenvolvendo um projeto na qual preciso capturar um pico de um sinal analógico e o tempo desse pico. O sinal começa em zero e se altera no espaço de tempo de 0 a 200ms, com amplitude de aproximadamente 30mA, qual comando uso para ter esse valor?

leandro1301

Olá, estou começando a brincar com o Arduino e fiquei com algumas dúvidas.

1) Qual a maneira correta de "parar" o Arduino? Explico melhor: Estou com ele conectado no USB executando um determinado código em um determinado circuito. Ai eu preciso adicionar alguns componentes e alterar um pouco do código. Atualmente o que eu faço é "desplugar" a USB do notebook. Faço as alterações e "plugo" novamente. Está correto isso? Não tem a possibilidade de estragar algo?
Caro amigo, não há nescidade de desplugar e plugar o arduino no pc toda vez que fizer alteração no código, apenas em caso de prototipagem é aconselhável como boas maneira da eletrônica. E para não estragar o arduino
Quote
2) Existe algum limite de upload para Arduino? Eu li que as memórias EEPROM suportam no máximo 100.000 remoção/escrita e leitura infinita. Isso se aplica ao Arduino?
Limites de upload's? Não único limite é quanto a memoria(colega acima já explicou isso acima) e da vida útil do seu Arduíno.
Quote
3) Conectei um LED no oin 10, fiz o digitalWrite(10, HIHG) e não setei o pinMode(10, OUTPUT). Mesmo assim, o LED acendeu, bem fraco, mas acendeu. Quando coloquei o código pinMode(10, OUTPUT), ele continuou aceso, mas dessa vez, bem mais forte (conforme o esperado). A questão é, por que eu ele acendeu mesmo não setando o modo como OUTPUT?
Isso acontece com qual quer CI, é chamado de estado flutuante ele está ocilando sua porta com energia alta e baixa para nois o efeito em um LED é a luminosidade. A chamada da função pinMode apenas irá fazer com que o Arduíno possa distinguir o pino para uso se PULL UP ou PULL DOWN já que se trata de microcontrolador. Caso ainda esteja com dúvidas quanto a isso sugiro um que leia um livro de eletrônica digital.

Go Up