-
Posts
8 -
Cadastrado em
-
Última visita
Reputação
0-
@Sérgio Lembo No TinkerCad, que simula os circuitos, ele não está acionando o Cooler. Creio que eu montei igual você disse acima. O que poderia ser?
-
@Sérgio Lembo Resumindo, não precisa de Relé, muito obrigado. Recomenda algum transistor em especifico para utilizar no circuito ?
-
@Sérgio Lembo Entendi, os Coolers geralmente já vem com eles né? Mas ao invés do Transistor eu posso utilizar apenas um Relé de 12V?
-
@Sérgio Lembo Irá precisar de um Diodo paralelo ao Cooler agora?
-
Muito obrigado a ambos, consegui entender. Uma dúvida, quando estava pesquisando sobre isso vi que ao invés de um Transistor poderia ser utilizado um Relé 12V, então como seria? Obrigado.
-
Não sei se entendi direito, seria assim ? Se sim, agora posso ligar tranquilamente então o Cooler de 12V no Arduino de 5V sem medo do arduino queimar ou qualquer coisa? Obrigado.
-
JulioKOG alterou sua foto pessoal
-
Olá, estou com um trabalho de escola que é basicamente quando um ambiente chegar a determinada % de fumaça, o Arduino acionaria um Cooler de 12V. Gostaria de saber se apenas ligando o Cooler direto no Arduino funcionaria, e caso não, por que? E se não, como faço então? Andei pesquisando e acredito que vá precisar de um Relé de 12V né? E o que mais? Obrigado. Circuito: Código: #include <LiquidCrystal.h> LiquidCrystal lcd(12,11,5,4,3,2); float sensorValue; float GasSensorPin = A0; float transf; void setup() { Serial.begin(9600); lcd.clear(); lcd.begin(16, 2); analogReference(INTERNAL); lcd.print("Projeto LAB:"); lcd.setCursor(0, 1); lcd.print("Reducao Odor"); delay(100); pinMode(A0, OUTPUT); pinMode(6, OUTPUT); pinMode(A1, OUTPUT); pinMode(13, OUTPUT); lcd.clear(); lcd.print("Projeto LAB:"); } void loop() { lcd.setCursor(0,0); lcd.clear(); lcd.print("Projeto LAB:"); digitalWrite(A0, 0.0); GasSensorPin = 0; sensorValue = 0; lcd.setCursor(0,1); lcd.print("C. Gas: "); sensorValue = analogRead(GasSensorPin); transf=(100*(sensorValue-21))/114; lcd.print(transf); lcd.print("%"); delay(100); if (transf>10) { digitalWrite(6, HIGH); digitalWrite(A1, HIGH); } else { digitalWrite(6, LOW); digitalWrite(A1, LOW); digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(100); } }
-
Olá, Estou com dificuldades em um trabalho de algoritmo que tenho que fazer e gostaria de saber se podem me ajudar. O problema é que quando é digitado a opção 4 ou a opção 5 o programa para de responder antes de mostrar os dados. A função de cada opção: 1- Cadastrar paciente a partir de dados como: nome, codigo, telefone e convenio. Criando um arquivo paciente.txt. 2- Agendamento de data, hora, e tipo de consulta a partir do codigo do paciente. Criando um arquivo agenda.txt. 3- Alterar telefone de paciente a partir do codigo do paciente em "paciente.txt". 4- Mostrar paciente.txt e agenda.txt no programa 5- Criar arquivo auxiliar para mostrar somente nome, data, hora separando por " - ". Segue meu codigo: #include <iostream> #include <stdio.h> #include <string.h> #include <ctype.h> using namespace std; int main() { FILE *registro, *registro2, *aux; int cod, codB, tel, telB, repetiu=0, op, data, dataB, hora, horaB; char nome[30], conv[30], nomeB[30], convB[30], tipo[30], tipoB[30]; int c, posicao=0; registro = fopen("Paciente.txt", "a+"); registro2 =fopen("Agenda.txt","a+"); if (registro==NULL) { printf("\n Erro na criacao dos arquivos\n"); } else{ printf("\n 1- Cadastrar paciente"); printf("\n 2- Agendar"); printf("\n 3- Alterar tel."); printf("\n 4- Mostrar"); printf("\n 5- Arq. auxiliar"); printf("\n 6- Sair\n"); printf(" Digite opcao: "); cin>>op; if(op==1){ printf("\n Digite o codigo do paciente: "); scanf("%d%*c", &cod); rewind(registro); fseek(registro, posicao, SEEK_SET); printf("Digite nome do paciente: "); scanf("%s%*c", &nome); printf("Digite telefone do paciente: "); scanf("%d%*c", &tel); printf("Digite convenio do paciente: "); scanf("%s%*c", &conv); fprintf(registro,"%d %d %30s %30s\n", codB, telB, nomeB, convB); printf("\nCadastro realizado com sucesso !\n\n"); fclose(registro); } if(op==2){ rewind (registro2); fseek(registro2, posicao, SEEK_SET); printf(" Digite data da consulta: "); scanf("%d%*c", &data); printf(" Digite hora da consulta: "); scanf("%d%*c", &hora); printf(" Digite codigo do paciente: "); scanf("%d%*c", &cod); printf(" Digite tipo de consulta (Normal/Retorno): "); scanf("%c%*c", &tipo); fprintf(registro2,"%d %d %d %30s\n", dataB, horaB, codB, tipoB); printf("\nAgendamento realizado com sucesso !\n\n"); fclose(registro2); } if(op==3){ printf("Digite codigo do paciente: "); scanf("%d%*c", &cod); fscanf(registro,"%d %d %30s %30s\n", codB, telB, nomeB, convB); if(cod==codB){ posicao=0; repetiu=1; } else{ while ((!feof(registro)) && (cod!=codB)){ posicao=posicao+48+repetiu; fscanf(registro,"%d %d %30s %30s\n", codB, telB, nomeB, convB); repetiu++; } } if(repetiu==0){ cout<<"\n Paciente nao cadastrado\n\n"; } else { rewind (registro); fseek(registro, posicao, SEEK_SET); printf("Digite telefone: "); scanf("%d%*c", &tel); fprintf(registro,"%d %d %30s %30s\n", codB, telB, nomeB, convB); cout<<"\n Alterado com sucesso \n"; } fclose(registro); } if (op==4){ registro = fopen("Paciente.txt", "a+"); registro2 =fopen("Agenda.txt","a+"); feof(registro); feof(registro2); fscanf(registro,"%d %d %30s %30s\n", codB, telB, nomeB, convB); fscanf(registro2,"%d %d %d %30s\n", dataB, horaB, codB, tipoB); fprintf(registro,"%d %d %30s %30s\n", codB, telB, nomeB, convB); fprintf(registro2,"%d %d %d %30s\n", dataB, horaB, codB, tipoB); fclose(registro); fclose(registro2); } if(op==5){ aux=fopen("Emp.txt", "w+"); fscanf(registro," %s %d %d ", nomeB, dataB, horaB); printf("\n %s %d %d ", nomeB," - ", dataB," - ", horaB); fclose(aux); } if(op==6){ fclose(registro); fclose(registro2); } } system("pause"); } Obrigado.
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