Ir ao conteúdo
  • Cadastre-se

rodrigo75

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Reputação

1
  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
  2. 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.
  3. 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; } }
  4. 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.
  5. 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;} }
  6. rodrigo75

    programa com erro

    muito obrigado, me ajudou bastante, estava com duvidas sobre como montar.
  7. 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"); } }
  8. rodrigo75

    Programa em c

    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

×
×
  • Criar novo...