Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

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

  • Blog

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

Categorias

  • Cursos

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
    • Mac OS
  • 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 promoções
    • Notícias
    • Bolsa de empregos, certificações e mercado de trabalho
    • "Causos"
    • Encontros de usuários
    • Feira do Rolo
  • Clube do Hardware
    • Comentários, elogios, críticas e sugestões sobre o Clube do Hardware
    • Comentários de artigos
    • Fórum para testes de funcionalidades

Categorias

  • Hardware
  • Redes
  • Eletrônica
  • Sistemas operacionais

Encontrado 61 registros

  1. Estou há um bom tempo com um problema que não consigo resolver e não consigo ajuda nem com os professores da faculdade. Estou usando um arduino uno e tentando fazer funcionar um display lcd com este datasheet e esta pinagem: Já tentei vários tutorias diferentes e nada funciona Tentei esse com módulo i2c: https://www.arduinoecia.com.br/2014/12/modulo-i2c-display-16x2-arduino.html A única diferença é que o endereço do meu é 0x3F E só acende a luz e não aparece nada do texto. Tentei esse: https://www.arduinoecia.com.br/2014/01/ligando-display-lcd-16x2-em-modo-8-bits.html E não acontece nada, o display nem acende E esse foi o mais curioso: http://labdegaragem.com/profiles/blogs/tutorial-lcd-com-arduino Na primeira vez que eu fiz essa montagem só apareciam uns quadradinhos no display Na segunda vez, apareciam uns pontos de interrogação, uns traços e setas aleatoriamente Agora já não acontece nada, nem acende, porém se eu tirar os jumpers dos pinos 5 e 6 do display, ele acende mas bem fraquinho. Detalhe que eu não fiz nada diferente em cada vez que eu tentei. Para cada tutorial eu usei o código informado, não tentei um código diferente. Meu objetivo é montar um voltímetro tipo esse: https://sites.google.com/site/joseduarduino/home/19--voltimetro-no-arduino Que tem a montagem igual à anterior, porém eu não tenho nem como tentar construir esse voltímetro porque eu não consigo fazer o display funcionar. Se o display estiver com problema físico tem alguma forma de saber? Porque estou com receio de comprar outro e o problema não ser no display, pois eu já gastei uma grana boa comprado arduino, protoboard e etc. Qualquer ajuda será bem vinda.
  2. Pessoal, estou começando a mexer com os dois módulos ESP, o ESP8266 e o mais novo, o ESP32, e para isso dei start com ESP8266 na IDE Arduino, instalada no Windows 10. Aparentemente a IDE instalou normalmente, incluindo os drivers. Também consegui baixar o pacote de módulos compatíveis com a IDE para ESP8266 (que são uns 150MB), o dispositivo reconheceu na COM3, conectado via USB, etc. Enfim, parece estar tudo OK, exceto pelo fato de não ser reconhecido o ESP8266 dentro da IDE do Arduino, consequentemente não connectam. Ao acessar o menu Ferramentas - Obter informações da Placa, dá a mensagem de "Placa não identificada". Além disso não é possível compilar o programa base. No "Gerenciador de Dispositivos" do Windows ele é reconhecido como "Silicon Labs CP210x USB Bridge (COM3)". Alguém sabe o que pode estar ocorrendo? Obrigado.
  3. Bom, sou novo aqui no fórum, e gostaria de saber, com a experiencia de vocês, algumas coisas. Estou querendo iniciar na programação de arduino e gostaria de saber quais passos seguir para começar a trabalhar. Tenho os seguintes conhecimentos: -Eletrônica básica ( leis de kirchhoff, lei de ohms, por exemplo) -programação c++(intermediário) O principal ponto deste post é entender os conteúdos teóricos necessários para entender, analisar e criar os circuitos eletrônicos com a integração do Arduíno, gostaria de dominar a teoria para assim partir a pratica. Finalizando, quais os próximos passos ?
  4. Caros amigos , algum tempo atrás comprei está Bos... de display, até hoje não consegui faze-lo funcionar, a propósito , comprei dois , nenhum dos dois funcionam , já tentei com varias libraries e nada, não consigo saber se o display está ruim ou se são os tempos das libraries , ou comandos incompativeis, caso algum amigo aqui do forum já tenha usado esse display , ou em arduino ou em pic , ou qualquer outra coisa , e que tenha alguma rotina que funcione com esse display e possa me fornecer, para ver se jogo fora o display , ou nao, ficaria extremamente grato. Saúdações a todos
  5. bom dia, estava navegando no youtube, e me deparei com um cara utilizando o arduino como um joystick, e gostaria de saber como fazer isso, eu procurei a biblioteca na internet, porém não achei, tudo que vi foi um shild, mas não é isso que gostaria de usar shild, e sim utilizar o arduino como um joystick, para que ele seja reconhecido pelo computador como um joystick. obrigado
  6. Pessoal, to fazendo a leitura de uma roda fonica com arduino e, por conta da rpm elevada do bixão (por volta de 7 mil rpms) preciso fazer os digitalWrite e ler o sensor da forma mais rápida o possível Ja otimizei o código substituindo os digitalWrite por PORTB=B11000100(exemplo) também fiz uma máscara de váriavel para aumentar a frequencia da leitura do ADC, trocando o prescaler de 128 por 16 conforme a tabela mas, queria saber como fazer um digitalRead usando comandos do registrador. O que eu consegui encontrar foi usando o comando DDRX onde o x é a letra das portas, no caso do arduino: DDRD para portas de 0 a 7 DDRB para portas de 8 a 13 PINX para a porta em questão Mas, novamente, volto a perguntar. Como fazer digitalRead direto nos registradores para ganhar "tempo"?
  7. PROJETO DE SELETOR AUTOMÁTICO DE ANTENAS PARA RÁDIOS ICOM USANDO INTEFACE CI-V ( CAT ) E ARDUÍNO UNO PROGRAMADO EM BASCOM Recentemente adquiri um rádio moderno para a minha estação de rádio-amador, o modelo que escolhi foi um Icom IC 7300, de última geração, com uma excelente relação de custo benefício. Diferentemente dos modelos da Yaesu, que costumam vir com mais de um conector para ligar uma antena externa, esse rádio tem apenas um único conector, o que complica o uso de quem, como eu, possui várias antenas. Isto me obrigou a criar um aparelho que permita a escolha de uma antena, o que normalmente é feito de forma manual, ou seja, caso eu queira utilizar em uma determinada frequência que não seja atendida pela antena selecionada, tenho de me lembrar de mudar manualmente uma chave seletora, e escolher a antena que permite o uso daquela frequência escolhida. Então, resolvi que poderia automatizar essa escolha, pois esses rádios possuem uma interface chamada CAT padrão CI-V, sigla de Computer Aided Transceiver, que foi introduzida no início da década de 2000 para permitir que um computador possa ser conectado ao rádio e assim poder fazer o controle do mesmo. Alguns rádios também possuem essa interface CI-V tanto no formato comum com conector P2 como também no formato USB, prontinha para ser ligada direto a um computador. Vou detalhar a seguir essa interface e algumas variantes, para então explicar o funcionamento nos rádios da Icom. Paulo
  8. Boa noite, estou querendo montar uma placa menor que arduino nano e que não tenha tantos pinos, utilizando o atmega328p(o mesmo utilizado no arduino nano e pro mini) alguem poderia me indicar um site onde posso montar esse circuito? se eu pedir para uma empresa eles montam?
  9. Boa tarde, estou desenvolvendo um produto que utiliza um arduino nano e gostaria de saber como criar um circuito impresso que ficasse menor que o arduino nano pois preciso de algo compacto. Estou utilizando 3 portas digitais. E alimentando com bateria 9v.
  10. Estou tentando fazer um delta tempo (t2-t1) com o arduino, e me deparei com uma coisa que não entendi: O software lê a entrada de dois botões, sendo que quando é lido o primeiro btn (s1) ele salva em T1 o tempo decorrido na função millis(), O mesmo ele faz para a leitura de s2 para salvar o segundo tempo em T2 e assim fazer a subtração do mesmo. Acontece que quando é feito a subtração a resposta em deltaT é sempre um número inteiro, mesmo que eu coloque uma virgula para casas decimais a resposta é sempre em número inteiro, isso é uma condição da variável unsigned long? e se sim, tem como inserir casas decimais? Segue imagens com os resultados. unsigned long s1 = 3; unsigned long s2 = 4; unsigned long deltaT; unsigned long T1; unsigned long T2; byte flag = 0; void setup() { Serial.begin(9600); pinMode(s1, INPUT_PULLUP); pinMode(s2, INPUT_PULLUP); } void loop() { unsigned long tcorrido = millis(); if (flag == 0) { if (digitalRead(s1) == LOW) { delay(200); T1 = tcorrido; Serial.print("T1= "); Serial.println(T1); } if (digitalRead(s2) == LOW) { delay(200); T2 = tcorrido; Serial.print("T2= "); Serial.println(T2); flag = 1; } } if (flag == 1) { deltaT = ((T2 - T1) / 1000); Serial.print("delta= "); Serial.println(deltaT, 4); delay(1000); flag = 0; } } Percebam se subtrair T2 de T1 se o resultado for menor que 1 delta =0 e se for maior delta =1 e assim por diante para n comparações adicionado 19 minutos depois fechem o tópico, já resolvi. Obrigado. :-)
  11. Olá, É possível o reconhecimento do smartphone pelo arduino, através do MAC a partir da rede interna?
  12. Estou tentando fazer com que um LED ligue caso o valor que eu colocar na serial for maior que a temperatura que ele está medindo. O problema é que está ligando sempre. Caso eu tire o if(Serial.available() > 0) liga sempre também mas desliga depois de um tempo. Alguém poderia me ajudar? const int LM35 = A0; float temperatura; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); } void loop() { temperatura = (float(analogRead(LM35))*5/(1023))/0.01; Serial.print("Temperatura: "); Serial.println(temperatura); delay(2000); if(Serial.available() > 0){ if(temperatura <= Serial.read()){ digitalWrite(13, HIGH); } else if(temperatura > Serial.read()){ digitalWrite(13, LOW); } } }
  13. Boa tarde a todos. Posto abaixo "dois pares de códigos" que elaborei para o Arduíno usando em ambos o "Módulo RF Wireless HC-12" com apoio de um LCD I2C 16x2. Trata-se do melhor módulo RF que já encontrei para trabalhar com o Arduíno, que alcança distância de mais de 1000 metros e sua programação é bem simples, utilizando uma biblioteca nativa do Arduíno chamada "SoftwareSerial". Os programas abaixo funcionam perfeitamente e podem auxiliar àqueles que, como eu, estão a procura de uma comunicação RF potente e de simples programação. O primeiro código faz a leitura remota de temperatura em um LM35 pelo HC12-transmissor e é recebida por outro HC12-receptor, sendo impressa no LCD 16x2. Todas as informações para ligação ao hardware estão no próprio programa. O segundo código ascende e apaga 02 leds no HC12-receptor (simulando a lâmpadas de uma casa) com apenas dois botões que são acionados no HC12-transmissor, que imprime o estado das lâmpadas no LCD-I2C. O grande diferencial deste projeto á a comunicação de confirmação mantida entre os módulos,de forma que, além de atuar (ascendo ou apagando), os módulos RFs emitem confirmação uma ao outro de que receberam a ordem para executar alguma ação. Todas as informações para ligação ao hardware estão no próprio programa. O que ainda ainda não consegui, e neste ponto gostaria de alguma ajuda, é unir os dois códigos de forma que: em repouso, no LCD fique registrado continuamente a temperatura (c/ backlight apagado p/ economizar) e quando os botões forem acionados, as mensagens sobre a iluminação seja impressa por dois segundos no LCD (sobre escrevendo a temperatura) , retornando logo após ao registro contínuo da temperatura. Talvez eu não esteja compreendendo por completo a comunicação serial e por isso não tive exito em juntar os dois programas. 1) Transmissor Temperatura HC12/LM35: //Transmissor de temperatura com LM35 HC12. // Autor: Odair José Gomes //LIGAÇÕES LM35: //https://portal.vidadesilicio.com.br/lm35-medindo-temperatura-com-arduino/ const int LM35 = A0; // Define o pino analogico para leitura do LM35. float temperatura; // Variável que armazenará a temperatura medida após a conversão. #include <SoftwareSerial.h> // biblioteca SoftwareSerial (nativa arduino). SoftwareSerial mySerial(2, 3); //RX, TX criado pela biblioteca SoftwareSerial. void setup() { // configurações iniciais Serial.begin(9600); // inicializa a comunicação serial. mySerial.begin(9600); // inicializa Serial do HC12. } void loop() { // laço de repetição temperatura = (float(analogRead(LM35))*5/(1023))/0.01; // converte a leitura pino A0 p/ Cº e armazena na variavel. Serial.println (temperatura, 1); // escreve a leitura convertida na serial do PC c/ 1 digito após a virgula. mySerial.write(analogRead(LM35)); // encaminha a leitura de A0 p/ o HC12 receptor. mySerial.flush(); // faz a limpesa da serial. delay(1000); // espera 1 segundo //FIM } 2) Receptor Temperatura HC12/LCD-I2C: //Receptor de temperatura com LM35 HC12. // Autor: Odair José Gomes //LCD 16x2 I2C: // http://www.arduinoecia.com.br/2014/12/modulo-i2c-display-16x2-arduino.html #include <SoftwareSerial.h> // biblioteca SoftwareSerial (nativa do arduino). SoftwareSerial mySerial(2, 3); //RX, TX criado pela biblioteca SoftwareSerial. #include <Wire.h> // biblioteca I2C p/ uso do modulo I2C com o LCD 16x2. #include <LiquidCrystal_I2C.h> // biblioteca LCD. LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3, POSITIVE); // configuração LCD I2C. float temperatura; // Variável que armazenará a temperatura medida após a conversão. void setup() { Serial.begin(9600); // inicializa a comunicação serial do PC mySerial.begin(9600); // inicializa a comunicação serial do HC12. lcd.begin (16,2); // inicia o LCD 16 colunas/02 linhas. } void loop() { if(mySerial.available()>1){ // se houver dados no serial: temperatura = (float(mySerial.read ())*5/(1023))/0.01; // converte a leitura pino A0 p/ Cº e armazena na variavel. lcd.setCursor(3,0); //posiciona o curosr de escrita lcd.print("TEMPERATURA "); // escreve a seguinte frase lcd.setCursor(6,1); //posiciona o cursor de escrita do LCD. lcd.print(temperatura,1); // escreve a leitura convertida no LCD c/ 1 digito após a virgula. mySerial.flush(); // faz a limpesa da serial. } delay(20);//uma pequena espera p/ melhorar a comunicação. } //FIM 1) Automação Iluminação Receptor Arduíno HC12/Leds: //Receiver HC12 com 02 Leds. //Autor Odair José Gomes // HC12: //http://www.arduinoecia.com.br/2016/11/modulo-wireless-hc-12-arduino.html #include <SoftwareSerial.h> // biblioteca SoftwareSerial (nativa do arduino). SoftwareSerial mySerial(2, 3); // RX, TX criados pela biblioteca SoftwareSerial. int ledPin13 = 13; //led no pino 13. int ledPin12 = 12; //led no pino 12. unsigned long last = millis(); //variavel que armazena "millis ()". int input; // variavel que armazena os dados enviados pelo receptor HC12. void setup() { // configurações iniciais. mySerial.begin(9600); // inicia o serial do HC12. Serial.begin (9600); // inicia o serial do PC. pinMode(ledPin13, OUTPUT); //pino led 13 como saida. pinMode(ledPin12, OUTPUT); //pino led 12 como saida. } void loop() { // laço de repetição. boolean ledState13 = digitalRead(ledPin13); //variavel que armazena o estado do led 13. boolean ledState12 = digitalRead(ledPin12); //variavel que armazena o estado do led 12. if(mySerial.available() > 1){ // se houver dados na serial: input = mySerial.parseInt(); //leia a entrada em série e converta em número inteiro (-32,768 a 32,767). if(millis() - last > 250){ //se o tempo agora for 250 milissegundos maior do que a última vez. if(ledState13 == 0 && input == 1111){ //se o LED 13 estiver desligado e o código recebido for 1111. digitalWrite(ledPin13, HIGH); // liga o led pino 13. mySerial.println(1222); //envie um código de confirmação ao HC12 transmissor. Neste caso, 1222. Serial.println ("led13 aceso"); // escreva a frase no serial do PC. }else if(ledState13 == 1 && input == 1111){//se o LED 13 estiver ligado e o código recebido for 1111. digitalWrite(ledPin13, LOW); // desliga o led pino 13. mySerial.println(1333); //envie um código de confirmação ao HC12 transmissor. Neste caso, 1333. Serial.println ("led13 apagado"); // escreva a frase no serial do PC. } if(ledState12 == 0 && input == 2111){ //se o LED 12 estiver desligado e o código recebido for 2111. digitalWrite(ledPin12, HIGH); // liga o led pino 12. mySerial.println(2222); //envie um código de confirmação ao HC12 transmissor. Neste caso, 2222. Serial.println ("led12 aceso"); // escreva a frase no serial do PC. }else if(ledState12 == 1 && input == 2111){//se o LED estiver ligado e o código recebido for 2111. digitalWrite(ledPin12, LOW); // desliga o led pino 12. mySerial.println(2333);//envie um código de confirmação ao HC12 transmissor. Neste caso, 2333. Serial.println ("led12 apagado"); // escreva a frase no serial do PC. } } mySerial.flush();// limpe o buffer serial para entradas indesejadas. last = millis();//reset millis (). } delay(20);//uma pequena pausa para uma melhor comunicação serial. } // FIM 2) Automação Iluminação Transmissor Arduíno HC12/LCD-I2C: //Sender HC12 com 02 Leds. //Autor: Odair Jose Gomes // LCD I2C: http://www.arduinoecia.com.br/2014/12/modulo-i2c-display-16x2-arduino.html // HC12: http://www.arduinoecia.com.br/2016/11/modulo-wireless-hc-12-arduino.html #include <SoftwareSerial.h> // biblioteca SoftwareSerial (nativa do arduino). #include <Wire.h> // biblioteca wire. #include <LiquidCrystal_I2C.h> //biblioteca LCD. LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3, POSITIVE); // configuração LCD I2C. SoftwareSerial mySerial(2, 3); // RX, TX criados pela biblioteca SoftwareSerial. int buttonPin8 = 8; // botão no pino 8. int buttonPin9 = 9; // botão no pino 9. int input; // variavel que armazena os dados enviados pelo transmissor HC12. void setup() { // configurações inciais. pinMode(buttonPin8, INPUT); // pino 8 como entrada. pinMode(buttonPin9, INPUT); mySerial.begin(9600); // inicia o serial do HC12. Serial.begin(9600); // inicia o serial do PC. lcd.begin (16,2); // informa que o LCD é 16x2. lcd.setBacklight(LOW); // apaga a luz de fundo do LCD. } void loop() { // laço de repetição. int buttonState8 = digitalRead(buttonPin8); //variável que armazena o estado do botão pino 8. int buttonState9 = digitalRead(buttonPin9); if(buttonState8 == 1){ //se o botão8 foi acionado. mySerial.println(1111); //envie um código exclusivo para o HC12 receptor atuar. Neste caso, 1111. } if(buttonState9 == 1){ //se o botão9 foi acionado. mySerial.println(2111); //envie um código exclusivo para o HC12 receptor atuar. Neste caso 2111. } input = mySerial.parseInt(); //leia a entrada em série e converta em número inteiro (-32,768 a 32,767). if(input == 1222){ //se este código for recebido: Serial.println ("GARAGEM ACESA"); // escreve a palavra no seria do PC. lcd.setBacklight(HIGH); // acende a luz de fundo do LCD. lcd.setCursor(3,0); // movimenta o cursor do LCD. lcd.print("GARAGEM "); // escreve a apalavra no LCD. lcd.setCursor(0,1); // movimenta o cursor do LCD. lcd.print("LAMPADA ACESA "); // escreve a apalavra no LCD. delay (2000); // espera 2 segundos. lcd.clear(); //limpa o LCD. lcd.setBacklight(LOW); // apaga a luz de fundo do LCD. } else if(input == 1333){ Serial.println ("GARAGEM APAGADA"); lcd.setBacklight(HIGH); lcd.setCursor(3,0); lcd.print("GARAGEM "); lcd.setCursor(0,1); lcd.print("LAMPADA APAGADA "); delay (2000); lcd.clear(); lcd.setBacklight(LOW); } if(input == 2222){ Serial.println ("AREA DO FUNDO ACESA"); lcd.setBacklight(HIGH); lcd.setCursor(2,0); lcd.print("AREA DO FUNDO "); lcd.setCursor(2,1); lcd.print("LAMPADA ACESA "); delay (2000); lcd.clear(); lcd.setBacklight(LOW); } else if(input == 2333){ Serial.println ("AREA DO FUNDO APAGADA"); lcd.setBacklight(HIGH); lcd.setCursor(2,0); lcd.print("AREA DO FUNDO "); lcd.setCursor(1,1); lcd.print("LAMPADA APAGADA "); delay (2000); lcd.clear(); lcd.setBacklight(LOW); } delay(20);//espera 20 ms para melhorar a comunicação } //FIM
  14. Boa noite membros do fórum, estou desenvolvendo um projeto onde preciso executar uma série de ações em função de um determinado código inserido no sistema através de um teclado. Não tenho prática com programação e isso está me travando muito. Preciso que o sistema realize os seguintes passos: Pressionar uma tecla X para ativar o recebimento do código; Digitar o código; Pressionar uma tecla Y para confirmar que o código foi digitado; Executar uma função específica para o código digitado *são vários códigos diferentes com comandos diferentes associados *a princípio cada código tem 3 dígitos numéricos Se conseguirem me ajudar com a programação, agradeço desde já.
  15. Pessoal, bom dia. Estava estudando em como se altera a frequencia de pwm dos pinos do arduino... Me deparei com essa tabela de valores em anexo. Queria saber se, tipo eu declarar TCCR1B = TCCR1B & B11111000 | B00000001; no void setup do arduino a frequencia altera para 31.375 khertz como fala essa folha. Uma outra dúvida. Lih em outros sites que a "função" TCNT=0; inicializa a variável contador para zero e , pelo que eu entendi, OCR1A=509; Seria uma espécide de PRESCALER que invocaria uma função a cada ciclo pelo comando: ISR(TIMER1_COMPA_vect){// interrupt when timer 1 match with OCR1A value //suas instruções } Queria mais "entender " isso. Sobretudo o OCR1A, como poderei chamá-lo. Desde já agradeço qualquer ajuda
  16. Olá, Estou desenvolvendo uma maquete de uma garagem automatizada que utiliza um servo motor para levantar e baixar o portão; um RFID passivo para abrir/fechar o portao pelo lado de fora e um sensor ultrassônico para abrir/fechar pelo lado de dentro da garagem. Ela funciona da seguinte forma: - Um sensor RFID está posicionado na frente do portão embaixo da calçada. Quando o carro com a tag correta passar por cima, o servo é acionado e a garagem se abre. - Um sensor ultrassônico está posicionado na parede final para que quando a distancia for menor que 5cm, o portao se feche. - Quando o carro começar a dar ré e a distancia for maior que 5cm da parede, o portão se abrirá novamente. - Ao passar novamente por cima do RFID, o portão irá se fechar. Essa maquete tem o intuito de desenvolver uma garagem totalmente automatizada sem o uso de controles eletrônicos. Porém estou um pouco perdido em relação a programação que precisa ser feita para o sistema funcionar corretamente. O servomotor está funcionando com uma fonte externa de energia para nao sobrecarregar o Arduino. Ja realizei diversos testes com varias programações e nao obtive sucesso. A seguir está a minha ultima tentativa: #include <SPI.h> #include <MFRC522.h> #include <Servo.h> #include <Ultrasonic.h> Servo microservo9g; //Define os pinos do Arduino ligados ao Trigger e Echo #define PINO_TRG 7 #define PINO_ECHO 6 // Definindo pinagem RFID #define SS_PIN 10 #define RST_PIN 9 //Inicializa o RFID nos pinos especificados MFRC522 mfrc522(SS_PIN, RST_PIN); //Inicializa o sensor ultrasonico nos pinos especificados Ultrasonic ultrasonic(PINO_TRG, PINO_ECHO); char st[20]; void setup() { // Define que o servo esta ligado a porta digital 3 microservo9g.attach(3); // Move o servo para a posicao inicial (garagem fechada) microservo9g.write(90); // Inicia a serial Serial.begin(9600); // Inicia SPI bus SPI.begin(); // Inicia MFRC522 mfrc522.PCD_Init(); // Mensagens iniciais no serial monitor Serial.println("Aproxime o seu cartao do leitor..."); Serial.println(); Serial.println("Lendo dados do sensor..."); Serial.println(); } void loop() { // Aguarda a aproximacao da tag if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Seleciona a tag if ( ! mfrc522.PICC_ReadCardSerial()) { return; } // Mostra UID na serial Serial.print("UID da tag :"); String conteudo= ""; byte letra; for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte, HEX); conteudo.concat(String(mfrc522.uid.uidByte < 0x10 ? " 0" : " ")); conteudo.concat(String(mfrc522.uid.uidByte, HEX)); } Serial.println(); Serial.print("Mensagem : "); conteudo.toUpperCase(); // Testa se o carro foi reconhecido if (conteudo.substring(1) == "D2 E4 37 D9") { // Abre a garagem microservo9g.write(-90); Serial.println("Portao Aberto !"); Serial.println(); } //Le as informações do sensor, em cm float cmMsec; long microsec = ultrasonic.timing(); cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM); Serial.print("Distancia em cm: "); Serial.print(cmMsec); delay (1000); if (cmMsec < 5) { microservo9g.write(90); Serial.println("Garagem Fechada !"); Serial.println(); } if (cmMsec > 5) { microservo9g.write(-90); Serial.println("Garagem Aberta !"); Serial.println(); } if (cmMsec > 5 && conteudo.substring(1) == "D2 E4 37 D9") { microservo9g.write(90); Serial.println("Garagem Fechada !"); Serial.println(); } } Quem tiver alguma sugestão para realizar esta programação, estou aceitando sugestões. Desde já, obrigado.
  17. Bom, estou fazendo um Relogio Digital que mostra a hora em um Arduino Digital, mas o problema é que não estou conseguindo configurar hora, o LCD Apenas liga, mas não mostra a hora e data. Print dos Circutios: Código: Digital Winding Clock - Arduino Clock for beginners No RTC, Just set it to exact time using the push buttons each time you switch on the clock Made by Techno (sǝɹoɟ ǝǝןuuɐ) Feel free to modify */ #include <LiquidCrystal.h> LiquidCrystal lcd(12,11,5,4,3,2); int h=12; int m; int s; int flag; int TIME; const int hs=8; const int ms=9; int state1; int state2; void setup() { lcd.begin(16,2); } void loop() { lcd.setCursor(0,0); s=s+1; lcd.print("TIME: 21"); lcd.print(h); lcd.print(": 52"); lcd.print(m); lcd.print(": 10"); lcd.print(s); if(flag<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); if(flag==24)flag=0; delay(1000); lcd.clear(); if(s==60){ s=0; m=m+1; } if(m==60) { m=0; h=h+1; flag=flag+1; } if(h==13) { h=1; } lcd.setCursor(0,1); lcd.print("Tenha um Bom Dia"); //-------Time // setting-------// state1=digitalRead(hs); if(state1==1) { h=h+1; flag=flag+1; if(flag<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); if(flag==24)flag=0; if(h==13)h=1; } state2=digitalRead(ms); if(state2==1){ s=0; m=m+1; } }
  18. Alguém sabe o código que fazem nesse vídeo ? Por favor não sei mais o que fazer .
  19. Olá, tenho algumas dúvidas em relação aos atmegas: Qual seria o melhor para um projeto que requer diversas portas, para relés, motores, etc... Faz diferença a linguagem a ser utilizada no atmega com a entrada do cabo comunicador? (ex: usar uma entrada usb tipo b em um chip com fuses e bits para a linguagem Basic) E quanto a uma placa com atmega e entrada RS232, pode-se usar um conversor usb x RS232 ? Desde já agradeço! ps: entrada usb tipo b( aquela presente nas placas de arduino)...
  20. Boa tarde! Tenho que fazer o seguinte programa: Elabore um programa que envie um número de 0 a 9 pelo canal de comunicação serial para um Arduino e que este some 1 ao valor e o envie de volta ao PC para ser impresso na tela. O professor passou algumas linhas de código em C para fazer esse envio e leitura, mas não consegui fazer funcionar. Até agora está assim: #include <stdio.h> #include <windows.h> #include <conio.h> HANDLE hSerial; wchar_t port[6] = {L"COM3"}; //A COM do meu arduino é a 3 int main() { hSerial = CreateFile("COM3", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); DCB dcbSerialParams = {0}; dcbSerialParams.DCBlength = sizeof(dcbSerialParams); GetCommState(hSerial, &dcbSerialParams); dcbSerialParams.BaudRate = CBR_9600; dcbSerialParams.ByteSize = 8; dcbSerialParams.StopBits = ONESTOPBIT; dcbSerialParams.Parity = NOPARITY; SetCommState(hSerial, &dcbSerialParams); COMMTIMEOUTS timeouts = {0}; timeouts.ReadIntervalTimeout = 50; timeouts.ReadTotalTimeoutConstant = 50; timeouts.ReadTotalTimeoutMultiplier = 10; timeouts.WriteTotalTimeoutConstant = 50; timeouts.WriteTotalTimeoutMultiplier = 10; SetCommTimeouts(hSerial, &timeouts); int comando; printf("Digite um número entre 0 e 9. 10 para fechar: "); scanf("%i", &comando); int TxBuff [1]; unsigned int TotalBytesaEnviar = 12; unsigned long BytesEnviados; TxBuff [0] = comando; WriteFile(hSerial, &TxBuff, TotalBytesaEnviar, &BytesEnviados, NULL); int RxBuff [1]; unsigned int TotalBytesaReceber = 1; unsigned long BytesRecebidos; ReadFile(hSerial, &RxBuff, TotalBytesaReceber, &BytesRecebidos, NULL); putchar(RxBuff[0]); printf("\n%i\n", comando); CloseHandle (hSerial); return 0; } No arduino coloquei o seguinte código: void setup() { Serial.begin(9600); } void loop() { if(Serial.available() > 0){ int num = 0; num = Serial.read() + 1; Serial.println(num); Serial.write(num); } } Ele retorna o valor, mas diferente do arduino.
  21. Eu gostaria de um programa para o arduino nano para a seguinte aplicação: - Com a entrada variando de 110v a 220v a saída deverá permanecer em 110v (15A).
  22. Pessoal preciso de um help. Estou tentando comandar um tip 42c com arduino por ser pnp mas não estou conseguindo "desligar a carga" ela fica sempre ligada. Na polarização, eu percebi que, se a carga é 12 volts, ela desliga quando tiro o sinal do arduino, mas como estou alimentando com 30 volts o sinal. Ele fica sempre ligado. Alguem tem alguma ajuda? Vi esse esquema com arduino na internet, tem como adaptá-lo para 30 volts Segue abaixo o esquema no easyeda, que tava usando pra excitar o tip42
  23. Boa tarde, estou fazendo um projeto que utiliza arduino e esse sensor de cor, para acionar uma válvula. Achei um programa pronto para ler as cores, porém não estou entendendo a função que le as cores, se alguém, puder me explicar, porque vou usar essa parte da função para ler as cores e comparar para poder acionar a válvula, e vou ter que explicar toda a programação para meus professores. a parte que não entendi é essa: void color() { //Rotina que le o valor das cores digitalWrite(s2, LOW); digitalWrite(s3, LOW); //count OUT, pRed, RED red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); digitalWrite(s3, HIGH); //count OUT, pBLUE, BLUE blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); digitalWrite(s2, HIGH); //count OUT, pGreen, GREEN green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); } e aqui está o link da onde eu retirei essa programação: https://www.filipeflop.com/blog/sensor-de-cor-tcs3200-rgb-arduino/ Obrigado desde já.
  24. Olá, galera estou montando um programa em arduino de uma máquina de café expresso. Porém tenho umas dúvidas e não sei como resolver, o programa está praticamente pronto, eu só gostaria que no display ficasse aparecendo sempre a escrita ( CAFÉ EXPRESSO), e quando alguém apertasse algum botão então apareceria o menu de opções. Outro problema que eu tenho e não sei como resolver é por exemplo; tenho a opção de , CAFÉ EXPRESSO FORTE, e tenho também a meia dose do café expresso forte, no display eles aparecem em sequencia, eu queria por tipo um menu que eu selecionaria " café expresso forte" e dentro desse aparecesse " 1/2 dose café expresso forte e dose completa do café. A mais uma coisinha tem como por que em quanto a máquina está preparando a receita aparecesse no display a palavra "PROCESSANDO". obrigado. #include <LiquidCrystal.h> const int b1 = 2; //botao para cima const int b2 = 3; //botao para baixo int b3 = A4; // fichas const int b4 = A5; // enter const int agua = 10; const int leite = 11; const int chocolate = 12; const int cafe = 13; const int res_agua = A2; //reservatorio agua const int res_leite = A3; //reservatorio leite int sensor_agua = A0; // agua int sensor_leite = A1; //leite int valor_agua = 0; float temp_agua = 0; int valor_leite = 0; float temp_leite = 0; int fichas = 0; int enter = 0; int alto = 0; int baixo = 0; int x = 0; int retencao = 0; int contador = 0; int saldo = 0; int credito = 0; LiquidCrystal lcd(9, 8, 7, 6, 5, 4); void setup() { lcd.begin(16, 2); pinMode(alto, INPUT); pinMode(baixo, INPUT); pinMode(sensor_agua, INPUT); pinMode(sensor_leite, INPUT); pinMode(fichas, INPUT); pinMode(enter, INPUT); pinMode(agua, OUTPUT); pinMode(leite, OUTPUT); pinMode(chocolate, OUTPUT); pinMode(cafe, OUTPUT); pinMode(res_agua, OUTPUT); pinMode(res_leite, OUTPUT); lcd.setCursor (0, 0); lcd.print ("CAFE EXPRESSO"); lcd.setCursor(0, 1); lcd.print("ESCOLHA A OPCAO"); delay(2000); // ver a necessidade dessa opção Serial.begin (9600); } void loop() { alto = digitalRead(b1); // leitura dos botões. baixo = digitalRead(b2); fichas = digitalRead(b3); enter = digitalRead(b4); valor_agua = analogRead(sensor_agua); temp_agua = (valor_agua * 0.00488); temp_agua = (temp_agua * 100); Serial.println(temp_agua); delay (300); valor_leite = analogRead(sensor_leite); temp_agua = (valor_leite * 0.00488); temp_leite = (temp_leite * 100); Serial.println(temp_leite); delay(300); if (alto == HIGH) //contador do menu { contador = contador + 1; } if (contador > 7) { delay (50); contador = 0; } if (baixo == HIGH) { delay (50); contador = contador - 1; } if (contador < 0) { delay (50); contador = 7; } if (enter == HIGH) { delay (50); retencao = 1; } if (fichas == HIGH) { delay(100); saldo = saldo + 1; /// descição do saldo } lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("saldo: "); lcd.setCursor(6, 0); lcd.print(saldo); // inicio do menu if (contador == 0) //cafe extra forte { lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("CAFE EXTRA FORTE"); delay(100); } if ((contador == 0) && (retencao == 1) && (saldo < 4)) //informando a falta de fichas { credito = 4 - saldo; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("saldo + "); lcd.setCursor(8, 0); lcd.print(credito); delay(2500); retencao = 0; } if ((contador == 0) && (retencao == 1) && (saldo >= 4)) //abre valvula { digitalWrite(res_agua, HIGH); while (temp_agua < 90) { valor_agua = analogRead(sensor_agua); temp_agua = (valor_agua * 0.00488); temp_agua = (temp_agua * 100) + 60; delay (300); } digitalWrite(res_agua, LOW); for (int i = 0; i < 2; i++) { digitalWrite(cafe, HIGH); delay(500); digitalWrite(cafe, LOW); digitalWrite(agua, HIGH); delay(2500); digitalWrite(agua, LOW); } saldo = saldo - 4; // verificar o saldo 4 delay(100); retencao = 0; } // meia dose extra forte if (contador == 1) { lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("1/2 EXTRA FORTE"); delay(100); } if ((contador == 1) && (retencao == 1) && (saldo < 2) ) // falta de fichas { credito = 2 - saldo; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("saldo + "); lcd.setCursor(8, 0); lcd.print(credito); delay(2000); retencao = 0; } if ((contador == 1) && (retencao == 1) && (saldo >= 2) ) //abre valvulas { digitalWrite(res_agua, HIGH); while (temp_agua <= 90) { valor_agua = analogRead(sensor_agua); temp_agua = (valor_agua * 0.00488); temp_agua = (temp_agua * 100) + 60; delay (300); } digitalWrite(res_agua, LOW); digitalWrite(cafe, HIGH); delay(500); digitalWrite(cafe, LOW); digitalWrite(agua, HIGH); delay(2500); digitalWrite(agua, LOW); saldo = saldo - 2; delay(100); retencao = 0; } if (contador == 2) // cafe fraco { lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("EXPRESSO FRACO"); delay(100); } if ((contador == 2) && (retencao == 1) && (saldo < 2) ) //fichas { credito = 2 - saldo; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("saldo + "); lcd.setCursor(8, 0); lcd.print(credito); delay(2500); retencao = 0; } if ((contador == 2) && (retencao == 1) && (saldo >= 2) ) //valvulas { digitalWrite(res_agua, HIGH); while (temp_agua < 90) { valor_agua = analogRead(sensor_agua); temp_agua = (valor_agua * 0.00488); temp_agua = (temp_agua * 100) + 60; delay(300); } digitalWrite(res_agua, LOW); for (int i = 0; i < 2; i++) { digitalWrite(cafe, HIGH); delay(250); digitalWrite(cafe, LOW); digitalWrite(agua, HIGH); delay(2500); digitalWrite(agua, LOW); } saldo = saldo - 2; delay(100); retencao = 0; } if (contador == 3) // cappuccino { lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("CAPPUCCINO"); delay(100); } if ((contador == 3) && (retencao == 1) && (saldo < 4)) // fichas { credito = 4 - saldo; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("saldo + "); lcd.setCursor(8, 0); lcd.print(credito); delay(3000); retencao = 0; } if ((contador == 3) && (retencao == 1) && (saldo >= 4) ) //abre valvulas { digitalWrite(res_leite, HIGH); digitalWrite(res_agua, HIGH); while ((temp_agua < 70) && (temp_leite < 70) ) { valor_agua = analogRead(sensor_agua); temp_agua = (valor_agua * 0.00488); temp_agua = (temp_agua * 100) + 60; delay (300); valor_leite = analogRead(sensor_leite); temp_leite = (valor_leite * 0.00488); temp_leite = (temp_leite * 100); delay(300); } digitalWrite(res_leite, LOW); digitalWrite(res_agua, LOW); for (int i = 0; i < 2; i++) // ver as porcentagens { digitalWrite(cafe, HIGH); delay(350); digitalWrite(cafe, LOW); digitalWrite(chocolate, HIGH); delay(750); digitalWrite(chocolate, LOW); digitalWrite(agua, HIGH); delay(1500); digitalWrite(agua, LOW); digitalWrite(leite, HIGH); delay(1000); digitalWrite(leite, LOW); } saldo = saldo - 4; delay(100); retencao = 0; } if (contador == 4) // leite com chocolate { lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("LEITE & CHOCOLATE"); delay(100); } if ((contador == 4) && (retencao == 1) && (saldo < 4) ) // fichas { credito = 4 - saldo; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("saldo + "); lcd.setCursor(8, 0); lcd.print(credito); delay(3000); retencao = 0; } if ((contador == 4) && (retencao == 1) && (saldo >= 4) ) //abre valvulas { digitalWrite(res_leite, HIGH); while (temp_leite < 29) { valor_leite = analogRead(sensor_leite); temp_leite = (valor_leite * 0.00488); temp_leite = (temp_leite * 100) ; delay(300); } digitalWrite(res_leite, LOW); for (int i = 0; i < 2; i++) { digitalWrite(chocolate, HIGH); delay(500); digitalWrite(chocolate, LOW); digitalWrite(leite, HIGH); delay(2500); digitalWrite(leite, LOW); } saldo = saldo - 4; delay(250); retencao = 0; } if (contador == 5) //meia dose leite e chocolate { lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("1/2 LEITE & CHOCOLATE"); delay(100); } if ((contador == 5) && (retencao == 1) && (saldo < 2) ) // fichas { credito = 2 - saldo; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("saldo + "); lcd.setCursor(8, 0); lcd.print(credito); delay(2500); retencao = 0; } if ((contador == 5) && (retencao == 1) && (saldo >= 2)) //valvulas { digitalWrite(res_leite, HIGH); while (temp_leite < 29) { valor_leite = analogRead(sensor_leite); temp_leite = (valor_leite * 0.00488); temp_leite = (temp_leite * 100) ; delay(200); } digitalWrite(res_leite, LOW); digitalWrite(chocolate, HIGH); delay(500); digitalWrite(chocolate, LOW); digitalWrite(leite, HIGH); delay(2500); digitalWrite(leite, LOW); saldo = saldo - 2; delay(100); retencao = 0; } //leite puro if (contador == 6) { lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("LEITE PURO"); delay(100); } if ((contador == 6) && (retencao == 1) && (saldo < 2) ) // fichas { credito = 2 - saldo; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("saldo + "); lcd.setCursor(8, 0); lcd.print(credito); delay(2500); retencao = 0; } if ((contador == 6) && (retencao == 1) && (saldo >= 2) ) //abrir valvulas (fazendo cafe) { digitalWrite(res_leite, HIGH); while (temp_leite < 36) { valor_leite = analogRead(sensor_leite); temp_leite = (valor_leite * 0.00488); temp_leite = (temp_leite * 100) ; delay(300); } digitalWrite(res_leite, LOW); for (int i = 0; i < 2; i++) { digitalWrite(leite, HIGH); delay(2500); digitalWrite(leite, LOW); } saldo = saldo - 2; delay(100); retencao = 0; } // meia dose leite if (contador == 7) { lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("1/2 LEITE"); delay(100); } if ((contador == 7) && (retencao == 1) && (saldo < 1) ) // fichas { credito = 1 - saldo; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("saldo + "); lcd.setCursor(8, 0); lcd.print(credito); delay(2500); retencao = 0; } if ((contador == 7) && (retencao == 1) && (saldo >= 1) ) // valvulas { digitalWrite(res_leite, HIGH); while (temp_leite < 36) { valor_leite = analogRead(sensor_leite); temp_leite = (valor_leite * 0.00488); temp_leite = (temp_leite * 100) ; delay(300); } digitalWrite(res_leite, LOW); digitalWrite(leite, HIGH); delay(2500); digitalWrite(leite, LOW); saldo = saldo - 1; delay(100); retencao = 0; } }
  25. Bom dia pessoal. Estou com um projeto da faculdade que precisaria ligar um motor trifásico em rede bifásica. E queria fazer um chaveador utilizando o famigerado arduino. Pesquisando achei este circuito da imagem na internet mas não sei qual transistor usar que suporte a tensão, já que a fase vira 220 chegara a quase 320 volts no segundo estágio. Não sei que tipo de mosfet aguentaria essa tensão e como fazer pro arduino acionar o "gate " dele. Desde já agradeço qualquer ajuda que eu possa receber.

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

×