智能温控风扇(显示温度转速+高温自动开启)
#include <U8glib.h>
#define INTERVAL_LCD 20
unsigned long lcd_time = millis();
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
#define setFont_L u8g.setFont(u8g_font_7x13)
#define setFont_M u8g.setFont(u8g_font_fixed_v0r)
#define setFont_S u8g.setFont(u8g_font_fixed_v0r)
#define setFont_SS u8g.setFont(u8g_font_fub25n)
double analogVotage;
double temp;
unsigned int dutyCycle;
unsigned int tempMin=20;
unsigned int tempMax=33;
void setup() {
Serial.begin(115200);
analogReference(INTERNAL);
}
void loop() {
analogVotage=1.1*(float)analogRead(A3)/1023;
temp=100*analogVotage;
if(temp<=tempMin)
dutyCycle=0;
else if(temp<tempMax)
dutyCycle=(temp-tempMin)*255/(tempMax-tempMin);
else
dutyCycle=255;
analogWrite(10,dutyCycle);
Serial.print("Temp:");Serial.print(temp);
Serial.print("Degrees Duty cycle:");
Serial.print(dutyCycle);
u8g.firstPage();
do {
setFont_L;
u8g.setPrintPos(0,10);
u8g.print(temp);
u8g.setPrintPos(0,30);
u8g.print(dutyCycle);
}while (u8g.nextPage());
delay(100);
}
小白还没学过电路,如果图画得有问题请指出