#include <LiquidCrystal.h>
LiquidCrystal lcd(30, 32, 34, 35, 36, 37);
void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(3, OUTPUT);
pinMode(8, OUTPUT);
lcd.setCursor(2, 0);
lcd.print("CE362-Lab3");
}
void loop() {
int adcValue = analogRead(A1);
int duty = map(adcValue, 0, 1023, 0, 255);
analogWrite(3, duty);
if (adcValue > 600) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ADC reading is");
lcd.setCursor(0, 1);
lcd.print("more than 600");
Serial.print("ADC=");
Serial.print(adcValue);
Serial.println(" >600");
for (int i = 0; i <= 255; i += 25) {
analogWrite(8, i);
delay(50);
}
for (int i = 255; i >= 0; i -= 25) {
analogWrite(8, i);
delay(50);
}
return;
}
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("CE362-Lab3");
lcd.setCursor(0, 1);
lcd.print("ADC value:");
lcd.setCursor(11, 1);
lcd.print(" ");
lcd.setCursor(11, 1);
lcd.print(adcValue);
Serial.print("ADC=");
Serial.print(adcValue);
Serial.print(" Duty=");
Serial.println(duty);
delay(50);
}