Ir ao conteúdo
  • Cadastre-se

Pesquisar na Comunidade

Mostrando resultados para as tags ''Arduino''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Categorias

  • Armazenamento
  • Áudio
  • Energia
  • Entrada
  • Feiras e Eventos
  • Gabinetes
  • Memória
  • Museu
  • Placas-mãe
  • Portáteis
  • Processadores
  • Programas
  • Rádio CdH
  • Redes
  • Refrigeração
  • Smartphones
  • Tablets
  • Vídeo
  • Outros

Categorias

  • Armazenamento
  • Áudio
  • Câmeras
  • Computadores
  • Consoles
  • Eletrônicos
  • Energia
  • Entrada
  • Gabinetes
  • Impressão
  • Jogos
  • Memória
  • Placas-mãe
  • Portáteis
  • Processadores
  • Programas
  • Redes
  • Refrigeração
  • Smartphones
  • Tablets
  • Vídeo
  • Outros

Categorias

  • Livros disponíveis
  • Livros esgotados

Fóruns

  • Mensagens do Clube do Hardware
    • Regras gerais
    • Boletins do Clube do Hardware
    • Notícias da administração
  • Hardware
    • Recomendações de computadores
    • Placas de vídeo
    • Placas-mãe e chipsets
    • Processadores
    • Problemas de gargalo e desempenho
    • Memórias
    • Armazenamento
    • Refrigeração e superaquecimento
    • Fontes e energia
    • Gabinetes e casemods
    • Placas de som e áudio on-board
    • Periféricos
    • Mac
    • Overclock
    • Hardware - outros
  • Computação móvel
    • Notebooks
    • Tablets
    • Smartphones e apps
  • Redes e Internet
    • Redes e Internet
    • Hospedagem de sites e registro de domínios
  • Segurança da informação
    • Remoção de malware
    • Dúvidas sobre invasões e infecções
    • Programas de proteção
  • Programação e desenvolvimento
    • Java
    • C/C#/C++
    • Pascal/Delphi
    • .NET
    • Bancos de dados
    • Programação web
    • Programação - iniciantes
    • Programação de microcontroladores
    • Programação - outros
  • Software
    • Jogos
    • Pacotes de escritório
    • Computação distribuída (Folding@Home, Bitcoin etc.)
    • Virtualização
    • Design, animação e tratamento de imagens
    • Edição de áudio e vídeo
    • Programas
  • Sistemas Operacionais
    • Recomendação de sistemas operacionais
    • Windows
    • GNU/Linux, BSD, Unix-like e software livre
  • Eletrônicos
    • Equipamentos de som, home theaters e gravadores de mesa
    • Televisores e projetores
    • Câmeras e filmadoras
    • Players portáteis
    • Consoles (videogames)
    • GPS
    • Telefonia fixa
    • Eletrônica
    • Retrocomputação
  • Outros
    • Recomendações de serviços e lojas
    • Preços e ofertas
    • Notícias
    • Bolsa de empregos, certificações e mercado de trabalho
    • "Causos"
    • Encontros de usuários
  • Clube do Hardware
    • Comentários, elogios, críticas, sugestões e questões sobre o Clube do Hardware
    • Comentários de artigos
    • Fórum para testes de funcionalidades

Categorias

  • Hardware
  • Redes
  • Eletrônica
  • Sistemas operacionais

Encontrar resultados em...

Encontrar resultados que...


Data de criação

  • Iniciar

    FIM


Última atualização

  • Iniciar

    FIM


Filtrar pelo número de...

Data de registro

  • Iniciar

    FIM


Grupo


Caixas de som

Encontrado 152 registros

  1. Olá a todos... estou com o seguinte problema Utilizando um LED RGB, faça um projeto em que o LED deve alternar para as seguintes cores de acordo com a sequência em que um botão é pressionado: 1. Inicialmente o LED se encontra desligado 2. Ao pressionar o botão 1 vez, o LED deve ficar vermelho 3. Ao pressionar o botão pela segunda vez, o LED deve ficar verde 4. Ao pressionar o botão pela terceira vez, o LED deve ficar azul 5. Ao pressionar o botão pela quarta vez, o LED deve ficar roxo (vermelho + azul) 6. Ao pressionar o botão pela quinta vez, o LED deve ficar verde azulado (azul + verde) 7. Ao pressionar o botão pela sexta vez, o LED deve ficar laranja (verde + vermelho) 8. Ao pressionar o botão pela sétima vez, o LED deve ficar branco (verde + azul + vermelho) 9. Ao pressionar o botão pela oitava vez, o LED deve apagar. Tentei fazer de várias formas, porém, não consegui, sempre da algum erro, o mais perto que consegui chegar foi com esse código... (tenho que usar o debouce como filtro)... Já não sei o que fazer... agradeço a todos pela ajuda... a ligação elétrica e igual ao do arquivo anexo, só que com um led RGB... const int red=8; const int green=10; const int blue=12; const int botao=2; boolean estadoantbotao = LOW; boolean estadoatualbotao = LOW; int count=0; void setup() { pinMode (red,OUTPUT); pinMode (green,OUTPUT); pinMode (blue,OUTPUT); pinMode (botao,INPUT); } boolean debounce (boolean anterior) { boolean atual = digitalRead (botao); if (anterior != atual) { delay(5); atual = digitalRead(botao); } return atual; } void loop() { estadoatualbotao = debounce(estadoantbotao); count=(count==4) ? 0 : count+1; if (estadoantbotao == LOW && estadoatualbotao == HIGH && count==1){ analogWrite (red, 255); analogWrite (green, 0); analogWrite (blue, 0); } if (estadoantbotao == LOW && estadoatualbotao == HIGH && count==2){ analogWrite (red, 0); analogWrite (green, 255); analogWrite (blue, 0); } if (estadoantbotao == LOW && estadoatualbotao == HIGH && count==3){ analogWrite (red, 0); analogWrite (green, 0); analogWrite (blue, 255); } if (estadoantbotao == LOW && estadoatualbotao == HIGH && count==0){ analogWrite (red, 0); analogWrite (green, 0); analogWrite (blue, 0); } estadoantbotao = estadoatualbotao; }
  2. Olá gostaria de uma ajuda com um código de Arduíno,preciso de um código para colocar 02 botões push bottons ,sendo o primeiro ao pressionar inicia um timer de 10 minutos e apos o termino do tempo desliga um rele,mesmo eu pressionando novamente o rele nao desliga tendo que pressionar um 02 botão para que seja reiniciado o processo.fico no aguardo se alguem que saiba fazer o codigo me ajudar.meu email: concordiasat3@gmail.com ou mesmo publicar aqui.
  3. Tenho um Arduino uno e uso ele pra controlar a iluminação do aquário, é bem simples, 8 horas ligado, 16 horas desligado, intensidade gradativa do 0 ao 255 para ligar e desligar demorando 30 minutos do mínimo ao máximo, essa parte toda está pronta, mas quero melhorar esse projeto, quando eu ligo ele já começa o loop, ligando as leds, o que eu queria é poder ligar ele, o loop começar mas eu ter a opção de controlar usando um botão, explicando melhor seria o seguinte: 1 click ele inicia o loop 2 clicks ele pula pros LEDs acesos no máximo 3 clicks ele começa a desativar 4 clicks ele desliga totalmente O problema disso tudo é que quero manter ele no loop original, mas pulando etapas caso eu queira, utilizando o botão. Sendo 4 estágios no loop 1- Acionamento gradativo (levando 30 minutos) 2- acendimento total 3- desligamento gradativo(levando 30 minutos) 4- desligamento total Essa parte de quantidade de click também pode ser substituído por a cada click ele passa para o próximo estágio/etapa Meu programa atual: http://hiperload.com/s/li6m81h3a
  4. Eu estou fazendo uma cadeira na faculdade e preciso fazer um projeto com arduino, eu pensei, porque não fazer algo que vá me ser útil então? já que é pra começar resolvi fazer algo básico, fazer um app pra android que mande um sinal pro arduino, que vai ligar meu note quando eu estiver perto de casa. Eu vi coisas e só achei como mandar um sinal pro arduino com o shield de Ethernet ou Bluethoot(que não me serve), por exemplo com o código desse cara aqui https://br.renatocandido.org/2013/09/acendendo-um-led-via-internet-com-arduino-e-o-ethernet-shield/ Mas eu sei que tem, por exemplo, como fazer carrinhos de controle remoto por app com arduino, e não sei se eles usam ethernet pra isso, até porque se eu fosse fazer pelo ethernet assim, acho que seria meio over, entendem? eu só quero mesmo mandar um sinal, algo que chegue nela e ele entenda que tem startar os seus processos, tem como?
  5. Hoje fui testar uns esp32 que comprei, fiz a instalação seguindo o tutorial que vi mais vezes pela net, baixei o git, instalei os nodesMCU ate do 8266, pra garantir, executei o get.py como administrador, baixei o xtensa... mas ainda esta dando esse erro. Archiving built core (caching) in: C:\Users\kaue\AppData\Local\Temp\arduino_cache_452155\core\core_espressif_esp32_esp32_PSRAM_enabled,PartitionScheme_default,FlashMode_dio,FlashFreq_80,FlashSize_4M,UploadSpeed_921600,DebugLevel_none_fca483f9c08d59f77da4d1ba8b5da1e6.a O sketch usa 210764 bytes (16%) de espaço de armazenamento para programas. O máximo são 1310720 bytes. Variáveis globais usam 13796 bytes (4%) de memória dinâmica, deixando 313884 bytes para variáveis locais. O máximo são 327680 bytes. esptool.py v2.3.1 Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____....._____ A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header Já tentei mudar as portas COM3 e COM4 mas de nada adiantou, alguém sabe alguma solução ? O código que estou enviando é um blink básico, não tem erros.
  6. Ola, sou iniciante em arduino estou montando um projeto de uma cortina automatizada via controle remoto (IR) mas estou tendo problemas na parte do fim de curso... o esquema é o seguinte.. acionando o a tecla 1 do controle a cortina abre a tecla 2 fecha e a 3 é um " stop " em algum angulo que o usuario queira , o problema é que quando o motor chega no fim de curso ele para ..porém enquanto o fim de curso esta ativado ele nao deixa mais o motor girar no sentido contrario.. pois o sensor esta mandando o motor ficar parado... se alguem puder me ajudar fico grato ! estou usando essa programaçao : #include <IRremote.h> #include <AccelStepper.h> int sensor_final = 2; int estadosf ; int velocidade_motor = 250; int aceleracao_motor = 150; int sentido_horario = 0 ; int sentido_antihorario = 0 ; int RECV_PIN = 11; float armazenavalor; int pino_enable = 10; IRrecv irrecv(RECV_PIN); decode_results results; AccelStepper motor1(1,7,4); void setup() { pinMode(pino_enable, OUTPUT); pinMode(sensor_final, INPUT_PULLUP); Serial.begin(9600); irrecv.enableIRIn(); // Inicializa o receptor IR motor1.setMaxSpeed(velocidade_motor); motor1.setSpeed(velocidade_motor); motor1.setAcceleration(aceleracao_motor); Serial.println("Digite 1, 2 ou 3 e 3..."); } void loop() { estadosf = digitalRead (sensor_final); if (estadosf == LOW ) { Serial.print(" sensor "); digitalWrite (pino_enable, HIGH); } if (irrecv.decode(&results)) { Serial.print("Valor lido : "); Serial.println(results.value, HEX); armazenavalor = (results.value); if (armazenavalor == 0xFF6897) //Verifica se a tecla 1 foi acionada { Serial.println("Numero 1 recebido - Girando motor sentido horario."); digitalWrite(pino_enable, LOW); sentido_horario = 1; sentido_antihorario = 0; } if (armazenavalor == 0xFF9867) //Verifica se a tecla 2 foi acionada { Serial.println("Numero 2 recebido - Girando motor sentido anti-horario."); digitalWrite(pino_enable, LOW); sentido_horario = 0; sentido_antihorario = 1; } if (armazenavalor == 0xFF02FD) //Verifica se a tecla OK foi acionada { Serial.println("Numero 3 recebido - Parando motor..."); sentido_horario = 0; sentido_antihorario = 0; motor1.moveTo(0); digitalWrite(pino_enable, HIGH); } irrecv.resume(); //Le o próximo valor } // Move o motor no sentido horario if (sentido_horario == 1) { motor1.moveTo(10000); } // Move o motor no sentido anti-horario if (sentido_antihorario == 1) { motor1.moveTo(-10000); } // Comando para acionar o motor no sentido especificado motor1.run(); }
  7. Pessoal, no display estou pedindo para o usuário digitar uma SENHA e conforme ele vai digitando, vai aparecendo os números. Ao pressionar o "botão EQ" coloquei uma mensagem (APAGAR? S = + N = - ) para, caso pressione o botão "+" ele reseta a senha digitada e, caso pressione "-" ele volte para a digitação da senha.. Mas não sei como fazer isso, de pressionar o botão para criar um IF nessas condições.. Segue o trecho que contém as "cases" void actions() //Executa as ações das teclas do controle { switch(results.value) { case tecla1: Serial.println("1"); lcd.print("1"); break; case tecla2: Serial.println("2"); lcd.print("2"); break; case tecla3: Serial.println("3"); lcd.print("3"); break; case tecla4: Serial.println("4"); lcd.print("4"); break; case tecla5: Serial.println("5"); lcd.print("5"); break; case tecla6: Serial.println("6"); lcd.print("6"); break; case tecla7: Serial.println("7"); lcd.print("7"); break; case tecla8: Serial.println("8"); lcd.print("8"); break; case tecla9: Serial.println("9"); lcd.print("9"); break; case tecla0: Serial.println("0"); lcd.print("0"); break; case teclaPLAY: Serial.println("OK"); lcd.print("OK"); break; case teclaEQ: { lcd.setCursor(0, 0); lcd.print("APAGAR? S=+ N=-"); } } //end switch } //end actions *No início do programa eu já usei o #Define relacionando cada hexadecimal para a respectiva "tecla"
  8. Olá amigos, Estou fazendo um projetinho com Arduino UNO e gostaria de uma ajuda. Através de um sensor de corrente, quero capturar cerca de 4096 amostras em 1s (não preciso de mais informações além do 1º s), mas não estou encontrando onde consigo mexer no tempo de amostragem do Arduino, para que ele me dê essa quantidade de informação. Alguém tem alguma ideia ? Acredito que para isso eu precise definir um Tempo de Amostragem (Ts) em torno de 976us, para conseguir uma Frequência de Amostragem (fs) de 1025 Hz +/- ( fs = 1/ Ts ) . Preciso desses valores para trabalhar com banda de 500 Hz, da qual consigo verificar freqûencias até a 7ª harmônica para uma alimentação de 60 Hz. Δ f = fs/N = 1025/4096 = 0,25 Hz f máx = ( N x Δf ) / 2 = ( 4096 x 0,25 ) / 2 = 512,5 Hz adicionado 18 minutos depois O meu código segue abaixo, muito parecido com o do link citado. A diferença é que retirei os cálculos da Potência. //Carrega as bibliotecas #include "EmonLib.h" #include <LiquidCrystal.h> EnergyMonitor emon1; LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //tensão da rede eletrica int rede = 127.0; //Pino do sensor SCT int pino_sct = 1; void setup() { lcd.begin(16, 2); lcd.clear(); Serial.begin(9600); //Pino, calibracao - Cur Const= Ratio/BurdenR. 1800/62 = 29. emon1.current(pino_sct, 30); //informações iniciais display lcd.setCursor(0,0); lcd.print("Corr.(A):"); } void loop() { //Calcula a corrente double Irms = emon1.calcIrms(1480); //Mostra o valor da corrente Serial.print("Corrente: "); Serial.print(Irms); // Irms Serial.println(); lcd.setCursor(10,0); lcd.print(Irms); delay(1000); } Depois que conseguir requisitar todos esses dados, vou pesquisar a respeito de como capturar os valor da amplitude e frequência, pois quero construir a forma de onda da corrente capturada (parecido com um osciloscópio)
  9. Bom dia pessoal, estou tendo um problema em um código que estou desenvolvendo para um contador de display matricial de leds, com cinco displays 5x7 para contar de 0 à 999. Um breve resumo do programa: Ele pega a função “millis” , divide por 1000, e depois grava este valor na variavel inteira “numero”. depois ele executa um laço “for”, onde pega esta variavel, divide por outra variavel inteira “fator”, e divide o resultado desta operação por “BASE”, a qual foi definida no inicio do programa por como sendo 10, e atribui este resultado a uma variável denominada “valor”. E ainda dentro deste laço “for”, ele compara por meio da condição “if” numero correpondente aos cinco digitos do display, e chama uma função para que transfere em um array do tipo “byte” chamado “led”, o caractere correspondente, dos caracteres correspondentes gravados no array do tipo “char matriz”. Despois uma outra função é chamada para pegar cada array “led” e transferir para o um array maior do tipo char 40x7 denominado “máscara” , com a sua devida posição de acordo com a contagem, e por último uma função é chamada para enviar os dados deste ultimo array 40x7 para cinco circuitos integrados 74HC595 registradores de deslocamento, os quais mandam a informação de suas saidas para as colunas dos cinco displays 5x7. Esta mesma função gera ainda os pulsos de clock e reset para um circuito integrado 4017, o qal faz a contagem das linhas e completa a multiplexagem dos display. Ao compilar este código, ele compila normalmente e não aparece nenhum erro. só que os cinco displays simplesmente não acendem. Não se trata de um problema de hardware, pois testei os cinco displays em um outro programa e eles funcionaram normalmente, igualmente com os circuitos integrados 74HC595. Ja o circuito integrado 4017 retirei de um outo circuito que havia montado e também esta funcionando normalmente. Abaixo segue em anexo o código, se alguem tiver tempo de analisar e me ajudar, agradeço: #define ZERO {B01110000,B10001000,B10011000,B10101000,B11001000,B10001000,B01110000} #define UM {B00100000,B01100000,B00100000,B00100000,B00100000,B00100000,B01110000} #define DOIS {B01110000,B10001000,B00001000,B00010000,B00100000,B01000000,B11111000} #define TRES {B01110000,B10001000,B00001000,B01110000,B00001000,B10001000,B01110000} #define QUATRO {B00010000,B00110000,B01010000,B10010000,B11111000,B00010000,B00010000} #define CINCO {B11111000,B10000000,B11110000,B00001000,B00001000,B10001000,B01110000} #define SEIS {B00110000,B01000000,B10000000,B11110000,B10001000,B10001000,B01110000} #define SETE {B11111000,B00001000,B00001000,B00010000,B00100000,B00100000,B00100000} #define OITO {B01110000,B10001000,B10001000,B01110000,B10001000,B10001000,B01110000} #define NOVE {B01110000,B10001000,B10001000,B01111000,B00001000,B00010000,B01100000} #define ESPACO {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} int latchPin = 10; int clockPin = 13; int dataPin = 11; int clock = 9; int Reset = 8; const int numCaracteres = 10; char matriz[numCaracteres][7][8] = {ZERO, UM, DOIS, TRES, QUATRO, CINCO, SEIS, SETE, OITO, NOVE}; byte led0[8][7]; byte led1[8][7] = {ESPACO}; byte led2[8][7]; byte led3[8][7] = {ESPACO}; byte led4[8][7];// columns x rows char mascara[40][7]; int num_digitos = 3; int BASE = 10; void setup() { Serial.begin(9600); pinMode(dataPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(latchPin, OUTPUT); pinMode(clock, OUTPUT); pinMode(Reset, OUTPUT); digitalWrite(Reset, HIGH); digitalWrite(Reset, LOW); } void loop() { int numero = millis() / 1000; int fator = 1; for (int digito = num_digitos - 1; digito >= 0; digito = digito - 1) { int valor = (numero / fator) % BASE; Serial.println(valor); if (digito == 2) { selecionaMatriz_2(valor); } if (digito == 1) { selecionaMatriz_1(valor); } if (digito == 0) { selecionaMatriz_0(valor); } fator = fator * BASE; } alocaDigito (); for (int i = 0; i < 2000; i++) { escreveMatriz(); } } void selecionaMatriz_2(int pos) { Serial.println(pos); for (int i = 0; i <= 7; i++) { for (int j = 0; j <= 6; j++) { led0[j] = matriz[pos][j]; } } } void selecionaMatriz_1(int pos) { for (int i = 0; i <= 7; i++) { for (int j = 0; j <= 6; j++) { led2[j] = matriz[pos][j]; } } } void selecionaMatriz_0(int pos) { for (int i = 0; i <= 7; i++) { for (int j = 0; j <= 6; j++) { led4[j] = matriz[pos][j]; } } } void alocaDigito () { for (int j = 0; j <= 6; j++) { for (int i = 0; i <= 7; i++) { mascara[j] = led0[j]; } } for (int j = 0; j <= 6; j++) { for (int i = 8; i <= 15; i++) { mascara[j] = led1[i - 8][j]; } } for (int j = 0; j <= 6; j++) { for (int i = 16; i <= 23; i++) { mascara[j] = led2[i - 16][j]; } } for (int j = 0; j <= 6; j++) { for (int i = 24; i <= 31; i++) { mascara[j] = led3[i - 24][j]; } } for (int j = 0; j <= 6; j++) { for (int i = 32; i <= 39; i++) { mascara[j] = led4[i - 32][j]; } } } void escreveMatriz() { for (int m = 0; m <= 6; m++) { for (int n = 0; n <= 39; n++) { mascara[n][m] = ~mascara[n][m]; } } for (int linha = 0; linha <= 6; linha++) { digitalWrite(clock, LOW); digitalWrite(latchPin, LOW); for (int coluna = 0; coluna <= 39; coluna++) { digitalWrite(clockPin, LOW); if (mascara[coluna][linha] == 1) { digitalWrite(dataPin, HIGH); } else { digitalWrite(dataPin, LOW); } digitalWrite(clockPin, HIGH); } digitalWrite(clockPin, LOW); digitalWrite(latchPin, HIGH); digitalWrite(clock, HIGH); if (linha == 6) { digitalWrite(Reset, HIGH); digitalWrite(Reset, LOW); } } }
  10. Tenho uma impressora 3D que usa uma placa Gen7 (processador ATMEGA 1284p). Estou tentando subir o firmware na minha impressora, mas toda vez que verifico o código ele me retorna esse erro: C:\Users\apren\AppData\Local\Temp\ccBbHVpl.ltrans0.ltrans.o: In function `zigzag': C:\Users\apren\AppData\Local\Temp\arduino_build_817137\sketch/nozzle.h:120:(.text+0xcc8): relocation truncated to fit: R_AVR_7_PCREL against `no symbol' collect2.exe: error: ld returned 1 exit status Já verifiquei o nozzle.h na linha 120 e não tem erro algum. Alguma sugestão?
  11. Beleza galera, eu estou fazendo um trabalho de Física pra escola com o Arduíno que é sobre eletricidade, no código criei uma função e ele deve retornar 1 como valor so ela esta retornando 337 não sei o que esta a vendo segue o código: String resposta = "oi"; int ledtes = 13; void setup() { Serial.begin(9600); Serial.println("voce manja de"); Serial.println("Fisica ?"); pinMode(ledtes, OUTPUT); } void loop() { if (Serial.available()>0) { resposta = Serial.readString(); } if (resposta == "sim") { Serial.println("Escolha um conteudo:"); Serial.println("Conteudo 1"); Serial.println("Conteudo 2"); Serial.println("Conteudo 3"); resposta = "0"; } if (resposta == "Conteudo 1"){ int congra = int(conteudo1); Serial.println(congra); resposta = "0"; } } int conteudo1(){ Serial.println("Olhe o circuito"); Serial.println("Iniciando..."); delay(5000); digitalWrite(ledtes, HIGH); return(1); } a variável que armazena o valor retornado é a congra, se alguém sabe o porque disso já agradeço
  12. Alguém que conheça bem o drive A4988 para motor de passo pode me ajudar?????????
  13. Olá, estou com um projeto de detecção de gás, utilizo um arduino Nano, um sensor de gás mq-04 e um módulo bluetooth HC-05. O intuito do projeto é enviar a quantidade de gás que o sensor mede na sua porta analógica para o celular através do bluetooth, isso eu já fiz porém será um circuito utilizado em campo onde será necessário uma bateria 9Volts para alimentá-lo, então preciso de formas que eu possa diminuir o consumo do circuito para que ele tenha mais autonomia. Já estou utilizando a Narcoleptic.delay, gostaria de saber se tem como desabilitar pinos que não estou utilizando ou colocar o arduino para dormir e ele acorde caso receba uma mensagem do módulo bluetooth, o ideal seria ao receber um dado do módulo bluetooth o arduino acordar e enviar o dado do sensor para o celular, porém não sei como fazer isso e não sei medir a autonomia do meu circuito. Como posso medir a autonomia do circuito com essas informações? Arduino consome segundo a internet 150mA O sensor consome 150mA e o módulo Pareado 35mA; Conectado 8mA; PS: O sensor deve estar ligado sempre pois como é um sensor de gás ele tem tempo de aquecimento e caso desligue ele necessita ficar um tempo ligado antes de fazer a medição
  14. Estou com um problema com um problema e não sei se é a programção, pois meu servo motor não esta completando a programação fazendo o movimento apenas uma vez e meia, enquanto todo o resto esta a funcionar normalmente. adicionado 7 minutos depois /*Pinagem do arduino*/ #include <Servo.h> #define SERVO 3 // Porta Digital 3 Servo s ; // Variável Servo int pos; // Posição Servo int rep = 0; int rep2 = 0; int curvaa = 0; int curvaaa = 0; //motor_A int IN1 = 6 ; int IN2 = 7 ; int velocidadeA = 5; //motor_B int IN3 = 9 ; int IN4 = 10; int velocidadeB = 11; //variavel auxiliar int velocidade = 0; //------------------------------------------------- //Inicializa Pinos void setup() { pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); pinMode(velocidadeA,OUTPUT); pinMode(velocidadeB,OUTPUT); s.attach(SERVO); Serial.begin(9600); s.write(0); } void loop() { while(rep < 3){ for(pos = 0; pos < 180; pos++) { s.write(pos); delay(15); } delay(10); for(pos = 180; pos >= 0; pos--) { s.write(pos); delay(15); } delay(50); retoo(); rep++; } delay (150); // curva 1 <--------------------------------------- while(curvaa < 4){ curvaaa1(); delay(50); curvaa++; } while(rep2 < 3){ for(pos = 0; pos < 180; pos++) { s.write(pos); delay(5); } delay(5); for(pos = 180; pos >= 0; pos--) { s.write(pos); delay(5); } delay(10); retoo2(); rep2++; } // curva 2 >--------------------------------------- while(curvaaa < 4){ curvaaa2(); delay(50); curvaaa++; } for (int i=1; i>0; i++);{} } //--------------------------------------------------- //--------------------------------------------------- //--------------------------------------------------- void retoo(){ digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); analogWrite(velocidadeA,140); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); analogWrite(velocidadeB,75); delay(50); } //--------------------------------------------------- void retoo2(){ digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); analogWrite(velocidadeA,140); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); analogWrite(velocidadeB,75); delay(50); } //--------------------------------------------------- void servo() { for(pos = 0; pos < 180; pos++) { s.write(pos); delay(15); } delay(10); for(pos = 180; pos >= 0; pos--) { s.write(pos); delay(15); } } //--------------------------------------------------- void curva2(){ digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); analogWrite(velocidadeA,125); digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); analogWrite(velocidadeB,250); } //---------------------------------------------------- void curva1(){ digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH); analogWrite(velocidadeA,200); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); analogWrite(velocidadeB,100); } //---------------------------------------------------- void curvaaa2(){ curva2(); delay(1500); retoo2(); delay(1500); } //---------------------------------------------------- void curvaaa1(){ curva1(); delay(1500); retoo(); delay(1500); } //---------------------------------------------------- void re(){ digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH); analogWrite(velocidadeA,140); digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); analogWrite(velocidadeB,75); } //---------------------------------------------------- adicionado 30 minutos depois mudei apenas para a programação do meu servo e continua 1 ciclo e meio com a alimnetação externa enquanto por usb esta normal ...... #include <Servo.h> #define SERVO 3// Servo s; // Variável Servo int pos; // Posição Servo int rep = 0; void setup () { s.attach(SERVO); Serial.begin(9600); s.write(0); // Inicia motor posição zero } void loop(){ while(rep<5) { for(pos = 0; pos < 180; pos++) { s.write(pos); delay(15); } delay(1000); for(pos = 180; pos >= 0; pos--) { s.write(pos); delay(15); } rep++; } }
  15. Boa noite, comprei um arduino Nano, um sensor de gás MQ-04 e um módulo HC-05. Meu problema está no funcionamento do módulo HC-05, faço as seguintes conexões: VCC do módulo -> 5v do arduino GND do módulo - > GND do arduino TX do módulo -> pino 11 RX do módulo -> pino 10 (Com divisor de tensão utilizando resistores 1k2 e 2k2 devido alimentação de 3.3v) Quando ligo o arduino via porta serial no pc, o módulo pisca o LED durante alguns segundos e depois para de piscar, pesquisando na internet verifiquei que esse LED devia ficar piscando até algum dispositivo se conectar ao módulo porém tento procurar o bluetooth no celular e não aparece nenhum dispositivo para parear. Já tentei acessar o modo AT dele tb porém envio os comandos e não obtém resposta, alguem poderia me ajudar?!
  16. Boa noite, sou novo aqui no fórum, que acompanho há alguns anos apenas para leitura, e hoje resolvi me inscrever para tirar uma dúvida. Não tenho certeza se esta é a seção correta, mas lá vai. Comecei a brincar com o Arduino um mês atrás, aproximadamente, e no momento estou fazendo testes com diferentes circuitos, pra entender a lógica do negócio antes de realmente sair explorando. Esta semana montei dois circuitos muito semelhantes, e usando um multímetro cheguei a uma pergunta que como leigo não sei responder. São circuitos envolvendo resistores, dois leds e as portas digitais 3 e 5. Vou anexar imagens do circuito feito num simulador. No primeiro circuito temos o que eu acredito ser a disposição ideal a ser feita no caso. Um resistor de 330 ohms para cada led. Utilizando o multimetro eu obtive os seguintes resultados: - Cada led possui 1.9v de tensão. - Cada resistor possui 2.8v de tensão. - Totaliza 9.4v. O que imagino ser ok, sendo que até onde eu sei, temos 10v na fonte, juntando as duas saídas, portanto se distribuem esses 10v pelos componentes de acordo com o que cada um suporte. Obs: estou desprezando as pequenas variações. No simulador obtive aproximadamente a mesma tensão nos componentes e a MESMA corrente - como era de se esperar - de 9.51mA em cada componente. No segundo circuito, pus apenas um resistor - testei com 330ohms e 1k - na saída. E utilizando o multimetro obtive os resultados: - Cada led possui 1.7v de tensão. - O resistor possui 3.2v. - Totaliza 6.6v. Porém, tenho 10v - juntando as duas saídas - e se é verdade que os 10v se distribuem pelos elementos do circuito, onde estão os quase 3v restantes (isto é uma pergunta, minha interrogação não funciona). Obs1: também desprezando pequenas variações. Obs2: Os resultados NO MULTIMETRO quando pus o resistor de 1k ohm foi uma variação de aproximadamente 0.1~0.3v para baixo em cada componente. No simulador, com o resistor de 330ohms obtive correntes de 4.81mA em cada led e 9.62mA no resistor e utilizando o resistor de 1k ohms obtive 1.62mA em cada led e 3.23mA no resistor. O que vai de encontro com o que eu acreditava, que a corrente é sempre a mesma - considerando um circuito em série - para os elementos. Então fica a minha dúvida, onde estão os 3v do segundo circuito, porque as correntes nele são diferentes, houve queda de tensão e se houve, qual a causa e o que aconteceria se eu deixasse este circuito montado, queimaria(perguntas). Abraço a todos.
  17. Pessoal eu estou montando um projeto de braço robotico no arduino usando servo motores e botões, para mexer os servos. Está tudo funcionando mas a parte da garra o servo não está funcionando da maneira que deveria, so está mexendo se aperta apenas 1 botão e ele vai e volta, achei que o problema poderia estar nas portas do arduino então coloquei na analogica e coloquei o digitalRead porém continua não funcionando da forma que deveria.. Queria saber se o problema esta no codigo. #include <Servo.h> //BIBLIOTECA DE FUNÇÕES COM MOTORES SERVOS // DECLARAÇÃO DOS MOTORES USADOS NO PROJETO... Servo servoBase; //RODA O SERVO PARA DIREITA E PARA ESQUERDA... Servo servoGarra; //GARRA DO BRAÇO MECÂNICO... Servo servoSD1; //MOTOR RESPONSÁVEL PELA MOVIMENTAÇÃO HORIZONTAL DO BRAÇO ATRÁS Servo servoSD2; //MOTOR RESPONSAVEL PELA MOVIMENTAÇÃO HORIZONTAL DO BRAÇO NA FRENTE int anguloInicial = 0; //ANGULO INICIAL int botaoBaseD = 2; //BOTAO RESPONSAVEL EM MOVER A BASE PARA A DIREITA int botaoBaseE = 3; //BOTAO RESPONSAVEL EM MOVER A BASE PARA ESQUERDA int botaoSubir1 = 4; //BOTAO RESPONSAVEL EM SUBIR A PARTE TRÁS DO BRAÇO int botaoDescer1 = 5; //BOTAO RESPONSAVEL EM DESCER A PARTE TRÁS DO BRAÇO int botaoSubir2 = A0; //BOTAO RESPONSAVEL EM SUBIR A PARTE DA FRENTE DO BRAÇO int botaoDescer2 = A1; //BOTAO RESPONSAVEL EM DESCER A PARTE DA FRENTE DO BRAÇO int botaoGarraFechar = 8; //BOTAO RESPONSAVEL EM FECHAR A GARRA int botaoGarraAbrir = 9; //BOTAO RESPONSAVEL EM ABRIR A GARRA bool leituraBotaoD = 0; //LÊ O BOTAO DA BASE DIREITA bool leituraBotaoE = 0; //LÊ O BOTAO DA BASE ESQUERDA bool leituraBotaoSubir1 = 0; //LÊ O BOTAO QUE SOBE O BRAÇO bool leituraBotaoDescer1 = 0; //LÊ O BOTAO QUE DESCE O BRAÇO bool leituraBotaoSubir2 = 0; //LÊ O BOTAO QUE SOBE O BRAÇO bool leituraBotaoDescer2 = 0; //LÊ O BOTAO QUE DESCE O BRAÇO bool leituraBotaoFechar = 0; //LÊ O BOTAO QUE FECHA A GARRA bool leituraBotaoAbrir = 0; //LÊ O BOTAO QUE ABRE A GARRA void setup() //FUNÇÃO ONDE SÃO ESPECIFICADAS AS CONFIGURAÇÕES DO PROJETO... { Serial.begin(9600); //ATRIBUIÇÃO DE PINOS PARA OS MOTORES servoGarra.attach(12); servoBase.attach(13); servoSD1.attach(10); servoSD2.attach(11); pinMode(botaoBaseE,INPUT); pinMode(botaoBaseD,INPUT); pinMode(botaoSubir1,INPUT); pinMode(botaoDescer1,INPUT); pinMode(botaoSubir2,INPUT); pinMode(botaoDescer2,INPUT); pinMode(botaoGarraFechar,INPUT); pinMode(botaoGarraAbrir,INPUT); Serial.begin(9600); servoBase.write(anguloInicial); servoGarra.write(anguloInicial); servoSD1.write(anguloInicial); servoSD2.write(anguloInicial); } void loop() { leituraBotaoD = digitalRead(botaoBaseD); leituraBotaoE = digitalRead(botaoBaseE); while(leituraBotaoD == HIGH && leituraBotaoE == LOW && anguloInicial < 180){ anguloInicial = anguloInicial + 2; servoBase.write(anguloInicial); Serial.println("BASE PARA DIREITA"); delay(25); leituraBotaoD = digitalRead(botaoBaseD); leituraBotaoE = digitalRead(botaoBaseE); // leituraBotaoD = 0; } while(leituraBotaoE == HIGH && leituraBotaoD == LOW && anguloInicial > 0){ anguloInicial = anguloInicial - 2; servoBase.write(anguloInicial); Serial.println("BASE PARA ESQUERDA"); delay(25); leituraBotaoD = digitalRead(botaoBaseD); leituraBotaoE = digitalRead(botaoBaseE); //leituraBotaoE = 0; } //****************** SOBE E DESCE 1 ***************************** leituraBotaoSubir1 = digitalRead(botaoSubir1); leituraBotaoDescer1 = digitalRead(botaoDescer1); while(leituraBotaoSubir1 == HIGH && leituraBotaoDescer1 == LOW && anguloInicial < 180){ anguloInicial = anguloInicial + 2; servoSD1.write(anguloInicial); Serial.println("SOBE 1"); delay(25); //leituraBotaoSubir1 = 0; } leituraBotaoSubir1 = digitalRead(botaoSubir1); leituraBotaoDescer1 = digitalRead(botaoDescer1); while(leituraBotaoDescer1 == HIGH && leituraBotaoSubir1 == LOW && anguloInicial > 0){ anguloInicial = anguloInicial - 2; servoSD1.write(anguloInicial); Serial.println("DESCE 1"); delay(25); //leituraBotaoDescer1 = 0; } //******************* SOBE E DESCE 2 **************** leituraBotaoSubir2 = digitalRead(A0); leituraBotaoDescer2 = digitalRead(A1); while(leituraBotaoSubir2 == HIGH && leituraBotaoDescer2 == LOW && anguloInicial < 180){ anguloInicial = anguloInicial + 2; servoSD2.write(anguloInicial); Serial.println("SOBE 2"); delay(25); //leituraBotaoSubir2 = 0; } leituraBotaoSubir2 = digitalRead(botaoSubir2); leituraBotaoDescer2 = digitalRead(botaoDescer2); while(leituraBotaoDescer2 == HIGH && leituraBotaoSubir2 == LOW && anguloInicial > 0){ anguloInicial = anguloInicial - 2; servoSD2.write(anguloInicial); Serial.println("DESCE 2"); delay(25); //leituraBotaoDescer2 = 0; } //******************************GARRA********************** leituraBotaoFechar = digitalRead(botaoGarraFechar); leituraBotaoAbrir = digitalRead(botaoGarraAbrir); while(leituraBotaoFechar == HIGH && leituraBotaoAbrir == LOW && anguloInicial < 180){ anguloInicial = anguloInicial + 5; servoGarra.write(anguloInicial); Serial.println("FECHA "); delay(25); //leituraBotaoFechar = 0; } leituraBotaoAbrir = digitalRead(botaoGarraAbrir); leituraBotaoFechar = digitalRead(botaoGarraFechar); while(leituraBotaoAbrir == HIGH && leituraBotaoFechar == LOW && anguloInicial > 0){ anguloInicial = anguloInicial - 5; servoGarra.write(anguloInicial); Serial.println("ABRE"); delay(25); //leituraBotaoAbrir = 0; } }
  18. bom dia, meu nome é Inacio, estou com uma dúvida simples e complexa acredito!! se for possível poderiam me ajudar em um projeto de TCC meu, mais para a parte do arduino. estou com dívida na seguinte etapa da minha programação: quero fazer com que três sensores leiam materais plásticos,metálicos,e de vidro(s1,s2,s3); porém dois sensores leem tudo(s1,s3) enquanto apenas um lê apenas metal(s2),mas o sensor s3 consegue detectar variação de objetos, sendo assim possível especificar o vidro no caso. deste modo consegui aplicar isto na IDE Arduino. eu tentei muitas vezes usar o comando if mas não obtive resultados esperados; meu objetivo é conseguir usar o valor dos dados que entram na porta analógica do arduino ou os dados que aparecem no monitor serial, exemplo :no monitor mostra 5,00. Como eu posso armazenar e usar este valor como definido para vidro, sabendo que terei outros dois sensores que também detectaram algo ao mesmo tempo? sendo mais direto como posso definir o valor variante que aparece no monitor e defini-lo para determinada tarefa? por favor se puder me ajudar nisto ficaria grato, estou há 1 semana quebrando a cabeça com isto como minha programação está no momento: nt scap= A0;//pino do sensor de vidro int led01=10;//led que sinaliza apenas o funcionamento float vcap=0;//nível de tensão que entra no sensor void setup() { Serial.begin(9600); pinMode(A0,INPUT); pinMode(10,OUTPUT); } void loop() { int vcap=analogRead(scap); float v1 = vcap * (5.0 / 1023.0); Serial.println(v1); digitalWrite(led01,v1); delay(550); //por enquanto esta ptogramação me mostra valores que são captados com a presença de um objeto a façe do sensor e são exibidos no monitor serial; }
  19. Boa noite. Estou tentando acionar um relé por um determinado espaço de tempo utilizando modulo rtc ds3231, alguém poderia exemplificar para mim uma forma de fazer isso? por exemplo: As 21:00 h começa a executar uma função e dentro dessa função vamos acionar um relé por 30 min.
  20. É o seguinte, eu estou fazendo um projeto que utiliza diversos sensores, como por exemplo, de temperatura. Na hora de criar o código eu os separo por funções, como exemplo func_temp(), eu determino as condições é coloco no loop. Só que isso é apenas para um sensor, minha dúvida é como usar essa mesma função para 4 sensores de temperatura, por exemplo. Poderiam fazer um código teste apenas para esclarecer essa minha dúvida? Obrigado
  21. Gente, preciso muito da ajuda de vcs, Seguinte, preciso programar uma sinaleira automatica (apenas para carros) com millis no arduino, só que nao tenho a minima ideia de como fazer com este (millis). Agradeço desde já a ajuda.
  22. Saudações senhores, Estou a desenvolver uma biblioteca para Arduino e estou precisando da seguinte informação: Como farei para colocar uma variável junto a um registrador,por exemplo,se eu quero modificar algum determinado registrador eu terei que informar qual seria uma porta,e eu quero que isso aconteça com um construtor de uma classe (Que é a biblioteca),e com base nas informações que teria nessa variável eu definirei se a determinada porta seria de saida ou de entrada e/ou saída alta ou baixa,otimizando a biblioteca e dando maior desempenho,pois essa biblioteca vai alterar a saida da porta milhares de vezes,e não da pra fazer isso com digitalWrite(),juntado o registrador com variável,por exemplo: PORTB + (x como variável),se x fosse 10,por exemplo,isso seria como eu tivesse digitado PORTB10; Outro exemplo: int setPort(int port){ //Vamos supor que o indivíduo disse que a porta seria a 10; port = 10; //Na teoria: PORTB + port; //Então,seria necessário que resultasse da seguinte forma: PORTB10; }
  23. Boa noite!Estou começando a estudar no curso de Técnico em Mecatrônica e n entendo nada de programação do Arduíno, gostaria de pedir a ajuda de todos para estar fazendo um projeto de um Marcador de Paintball, conforme as descrições descritas na imagem que estarei colocando aqui no Anexo .Agradeço todos desde já a todos .
  24. Estou usando arduino mega com ramps 1.4 e step driver a4988. Como nesse video: https://www.youtube.com/watch?v=ziwZNAsQexo Faço tudo igual, porém na hora de testar o motor ele fica vibrando internamente e nao gira. De 4 motores que testei 1 girou mas parou de girar, outro girou mas nao igual ao video e os outros 2 nem chegaram a girar. O que pode ser?
  25. olá gostaria de ajuda pra saber se é possivel fazer um carrinho que siga algo em movimento utilizando o 1 sensor Ultrassonico HC-SRO4 + arduino uno+ ponte H l298n + 2 motores algo como quando estiver em uma distancia menor que 30 cm deve andar para frente até chegar em 8cm e parar . não consegui achar codigo fonte nem exemplos assim então não sei se é possivel.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×