
rodrigo75
Membro Júnior-
Posts
8 -
Cadastrado em
-
Última visita
Reputação
1-
Muito obrigado galera, realmente falha minha não ter procurado no Google, vou usar o conselho de vocês sobre o projeto o principalmente sobre o cabo. Obrigado
-
Bom dia galera, preciso de ajuda em um projeto, pretendo montar um dimmer para controlar um motor 12v com 10 amperes nominal, o dimer tem que ser pwm e de preferência com Mosfet, e o potenciômetro vou precisar instalar ele uns 4mts longe da placa por questão de espaço do projeto. Se alguém tiver um projeto parecido se puder me envia. Obrigado.
-
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; } }
-
Arduino programa de leds no arduino
rodrigo75 respondeu ao tópico de rodrigo75 em Microcontroladores
Ok. Vou tentar a parte dos if eu fiz pensando que se eu estiver pressionando o b1 e ele chega na terceira opcao ele pularia automatico para a opcao 0. Criaria um loop nas opcaoes sem a mecessidade de ter que presssionar o botao de menos para voltar. -
olá galera. estou escrevendo um código com menu no arduino para o acionamento de 3 leds, com 3 opções de funcionamento diferentes, com 2 botões de seleção e 1 botão de confirma a opção desejada, e se pressionado de novo o botão de confirma tem que para a sequencia dos leds, porém não consigo fazer as trocas do menu, ele fica travado na primeira opção. Segue o código abaixo, se alguém puder dar uma olhada e me dar uma dica de como resolver.obrigado. const int b1 = 2; const int b2 = 3; const int b3 = 4; const int led1 = 6; const int led2 = 7; const int led3 = 8; int statusb1 = 0; int statusb2 = 0; int statusb3 = 0; int x = 0; int retencao=0; int contador = 0; void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(b1, INPUT); pinMode(b2, INPUT); pinMode(b3, INPUT); Serial.begin(9600); Serial.println("Bem vindo ao nosso programa Menu"); Serial.println("Pressione para baixo ou para cima para escolher uma opcao"); Serial.println(" Pisca-pisca"); Serial.println("Par e impar"); Serial.println("Liga desliga"); Serial.println("Girar"); } void loop() { statusb1 = digitalRead(b1); statusb2 = digitalRead(b2); statusb3 = digitalRead(b3); if (statusb1 == HIGH) { x++; } if (statusb3 == HIGH) { x--; } if (statusb2 == HIGH) { retencao=1; } if (x == 0 && retencao==1) { Serial.println("pisca pisca"); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); delay(500); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); delay(500); statusb2 = digitalRead(b2); while (statusb2 == HIGH) { statusb2 = digitalRead(b2); retencao = 0; } } if (retencao == 1 ) { // serve para todos os menus digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); retencao = 0; } if (x==1 && retencao==1 ) { Serial.println(" par e impar"); digitalWrite(led1, HIGH); digitalWrite(led3, HIGH); delay(1000); digitalWrite(led2, HIGH); delay(1000); } if(x==2&& retencao==1) { Serial.println("liga e desliga"); while(x==2 && retencao==3); digitalWrite(led1, HIGH); digitalWrite(led2,HIGH); digitalWrite(led3, HIGH); delay(500); digitalWrite(led1,LOW); digitalWrite(led2,LOW); digitalWrite(led3,LOW); delay(500); } if(x==3&&retencao==1){ Serial.println("giro"); while(x==3 && retencao==4); digitalWrite(led1, HIGH); delay(500); digitalWrite(led1,LOW); digitalWrite(led2,HIGH); delay(500); digitalWrite(led2,LOW); digitalWrite(led3, HIGH); delay(500); digitalWrite(led3,LOW); } if(x>3) { x=0;} if(x<0) { x=3;} }
-
muito obrigado, me ajudou bastante, estava com duvidas sobre como montar.
-
olá galera, estou começando em C e estou tentando escrever um, utilizei dados que encontrei em outros programas, porém ele não me deixa compilar e está dando erro. Se puderem em ajudem. obrigado. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <ctype.h> #include<conio.h> void incluir(); void alterar(); void excluir(); void listar(); int menu,x; struct cadastro{ int codigo; char nome[30]; char autor[30]; int ano; int quantidade; }; struct cadastro livros [5]; int main() { setlocale(LC_ALL, "Portuguese"); int menu; do { system("cls"); printf("<<<PROGRAMA CADASTRO DE LIVROS\n"); printf("1-Incluir livro\n"); printf("2-Alterar \n"); printf("3-Excluir\n"); printf("4-Listar \n"); printf("0-Sair\n\n"); printf("Sua opcao ==> "); scanf("%i", &menu); switch (menu) { case 1: incluir(); break; case 2: alterar(); break; case 3: excluir(); break; case 4: listar(); break; } } while (menu != 0); } void incluir(int cod,int x) { system("cls"); printf("Digite o código do livro: "); scanf("%i", &cod); for(x=0;x <=5;x++) if (strlen(cod[x]) == 0) {printf("Nome do livro: "); fflush(stdin); fgets(livros[x].nome); printf("Autor: "); fflush(stdin); fgets(livros[x].autor); printf("Ano do livro: "); scanf("%i", &ano[x]); printf("Quantidade de livros: "); scanf("%i", &quantidade[x]); } void alterar() {system("cls"); printf("Digite o codigo do livro: "); scanf("%i", &cod); if (strlen(nome[x]) > 0) { printf("Nome do livro: "); fflush(stdin); fgets(livros[x].nome); printf("Autor: "); fflush(stdin); fgets(livros[x].autor); printf("Ano do livro: "); scanf("%i", &ano[x]); printf("Quantidade de livros: "); fgets(livros[x].quantidade); } } void excluir() system("cls"); printf("Digite o codigo do livro: "); scanf("%i", &x); if (strlen(nome[x]) > 0) { printf("Tem certeza que deseja excluir?"); fflush(stdin); excluir = getchar(); if (toupper(excluir) == 'S') { strcpy(nome[x], ""); codigo[x] = 0; strcpy(autor[x], ""); ano[x] = 0; strcpy(quantidade[x], ""); } } else { printf("Erro. Nao existe livro cadastrado neste codigo!\n"); system("pause"); } void listar() {system("cls"); printf("Listar todos os livros cadastrados: \n\n"); for (x = 0; x < 10; x++) { if (strlen(nome[x]) > 0) { printf("%i - %s - %i - %s - %i - %i \n", x, nome[x], codigo[x], autor[x], ano[x], quantidade[x]); } printf("\n"); } }
-
olá galera, já visito o site algum tempo, porém sou novo como membro, gostaria que me ajudassem a desenvolver o programa abaixo, em c. Tenho somente algumas noções, nada de muito avançado. obrigado O código de cada aluno será a posição das informações no vetor. Isto é, teremos o código do aluno composto de 0 até 9, onde os dados do aluno código 0 será o primeiro e 9 o último. As informações a serem coletadas serão: Nome do Aluno, Idade, Cidade, Telefone e Curso. Ao término das atividades, enviar a tarefa via ambiente virtual (somente código-fonte cpp). Estrutura das Variáveis: char nome[10][30]; int idade[10]; char cidade[10][20]; int telefone[10]; char curso[10][30]; Menu do Programa: 1-Cadastrar aluno 2-Alterar aluno 3-Excluir aluno 4-Listar um aluno por código 5-Listar todos os alunos 6-Listar posições livres 7-Apagar todo o cadastro 0-Sair Regras: • Apresentar um menu inicial com as opções do programa e variáveis zeradas; • Nome, Cidade e Curso deverão ser convertidos para maiúsculo; • Não é permitido cadastrar um aluno em posição ocupada; • Somente é possível alterar um aluno em posição ocupada; • A opção de exclusão (3 e 6) deverá ser protegida com uma pergunta s/n; • Listar um aluno por código (4) somente deverá mostrar se o aluno realmente existe; • Listar alunos (5) deverá mostrar somente posições preenchidas; • Listar posições livres (6) deverá mostrar somente cadastros vazios;
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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