Pesquisar na Comunidade
Mostrando resultados para as tags ''arduino''.
Encontrado 4 registros
-
Olá, Só para ver se entendi direito: O Roastlogger é apenas uma interface gráfica, é através do Arduino PID, arquivos .ACP que se controla o torrador e permite repetir uma torra anteriormebte gravada. Certo?
-
#define sensor A1 #define controle 6 // pino do mosfet #define altTanque 14.5 #include "Ultrasonic.h" #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); Ultrasonic ultrasonic(10,9); //pinos trigger e echo long microsec = 0; float distanciaCM = 0; void setup() { Serial.begin(9600); pinMode(sensor,INPUT); pinMode(controle,OUTPUT); lcd.begin(20,4); } double P = 0, I = 0, D = 0, PID = 0; double KP = 285.5, KI = 160.5, KD = 10.0; int setpoint = 10; float controlePWM = 0; float nivel; double erro = 0; double lastNivel; long lastProcess = 0; void loop() { microsec = ultrasonic.timing(); //Lendo o sensor distanciaCM = ultrasonic.convert(microsec, Ultrasonic::CM);//Convertendo a distância em CM double distanciaCm = map(distanciaCM, 0, 14.5, 0, 255); nivel = altTanque - distanciaCM; if(nivel > 14.5){ nivel = 14.5; } if(nivel < 00.00){ nivel = 00.00; } erro=setpoint-nivel; float deltaTime = (millis () - lastProcess)/ 1000.0; lastProcess = millis(); P = erro * KP; I = (I + erro *KI) * deltaTime; //ou I += erro * KI; D = (lastNivel - nivel) * KD / deltaTime; //D = (lastNivel - nivel) * KD ; lastNivel = nivel; //lastNivel =nivel; PID = P + I + D; controlePWM = PID; // saida do controle if(controlePWM > 255){ controlePWM = 255; } if( nivel >= setpoint){ controlePWM = 0; } analogWrite(controle,controlePWM); lcd.setCursor(2,0); lcd.print("IFMA-COELHO NETO"); lcd.setCursor(2,1); lcd.print(nivel); lcd.print(" CM DE AGUA "); lcd.setCursor(5,2); lcd.print(controlePWM); lcd.print(" PWM "); lcd.setCursor(0,3); lcd.print("ALAN,JACINTO E BRITO"); //delay(100); analogWrite(controle,controlePWM); Serial.print(setpoint); Serial.print(" "); Serial.print(nivel); Serial.println(" "); //delay(100); /* analogWrite(controle,controlePWM); Serial.print("pwm: "); Serial.println(controlePWM); Serial.print("cm de agua: "); Serial.println( nivel); Serial.print("erro: "); Serial.println(erro); delay(1000); */
- 2 respostas
-
- pid
- controle de nivel
- (e 2 mais)
-
Meus amigos me ajudem utilizo um arduino nano com max6675 para monitorar minhas curvas de torra pelo Roastlogger, não tenho nada automatizado utilizo apenas para acompanhar o gráfico. Porem sou nub no assunto e gostaria de passar a utilizar o Artisan apenas com a mesma função, mais não estou conseguindo programar o arduino para mostrar as temperaturas no Artisan. Help me....
-
Bom pessoal é um prazer poder fazer parte deste fórum de apaixonados por café como eu. Sou produtor de café e apaixonado pela bebida e por eletrônica. Acompanhei diversos assuntos sobre automação de torrador utilizando Arduíno, porem com muitas opiniões distintas e não chegando a uma conclusão de fato, o mundo Arduíno pra mim ainda é novo mais muito empolgante, sem mais delongas. Gostaria muito de ajuda dos mais experientes de como posso automatizar meu torrador utilizando o Arduíno para que eu possa controlar as curvas de torras, porém no meu caso exite um fator distintos dos demais já visto na internet, meu torrador é a gás onde no lugar de resistência terei que controlar uma ou duas válvulas solenoide, por favor pessoal estou precisando muito deste projeto completo pois como já disse ainda sou iniciante no mundo Arduíno. Obrigado.