Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Analog input, analog output, serial output
- Reads an analog input pin, maps the result to a range from 0 to 255
- and uses the result to set the pulsewidth modulation (PWM) of an output pin.
- Also prints the results to the serial monitor.
- The circuit:
- * potentiometer connected to analog pin 0.
- Center pin of the potentiometer goes to the analog pin.
- side pins of the potentiometer go to +5V and ground
- * LED connected from digital pin 9 to ground
- created 29 Dec. 2008
- modified 9 Apr 2012
- by Tom Igoe
- This example code is in the public domain.
- */
- #include <Wire.h> // Comes with Arduino IDE
- #include <LiquidCrystal_I2C.h>
- LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
- // These constants won't change. They're used to give names
- // to the pins used:
- const int analogInPin = A0; // Analog input pin that the potentiometer is attached to
- const int analogOutPin = 9; // Analog output pin that the LED is attached to
- int s = 0; // value read from the pot
- int outputValue = 0; // value output to the PWM (analog out)
- void setup() {
- // initialize serial communications at 9600 bps:
- Serial.begin(9600);
- pinMode(8,OUTPUT);
- pinMode(9,OUTPUT);
- pinMode(10,OUTPUT);
- pinMode(11,OUTPUT);
- digitalWrite(8,LOW);
- digitalWrite(9,LOW);
- digitalWrite(10,LOW);
- digitalWrite(11,LOW);
- lcd.begin(16,2); // initialize the lcd for 16 chars 2 lines, turn on backlight
- lcd.backlight(); // finish with backlight on
- lcd.clear();
- lcd.setCursor(0,0); //Start at character 0 on line 0
- lcd.print("XXXXXXXX");
- lcd.setCursor(0,1);
- lcd.print("Alchohol level");
- }
- void loop() {
- // read the analog in value:
- s = analogRead(analogInPin);
- // map it to the range of the analog out:
- //outputValue = map(sensorValue, 0, 1023, 0, 255);
- // change the analog out value:
- analogWrite(analogOutPin, outputValue);
- if(s<400) {
- digitalWrite(9,LOW);
- digitalWrite(10,HIGH);
- digitalWrite(11,LOW);
- lcd.clear();
- lcd.setCursor(0,0); //Start at character 0 on line 0
- lcd.print("Low");
- lcd.setCursor(0,1);
- lcd.print("Alchohol level");
- }
- else if ((s>=400)&&(s<600)){
- digitalWrite(9,HIGH);
- digitalWrite(10,LOW);
- digitalWrite(11,LOW);
- lcd.clear();
- lcd.setCursor(0,0); //Start at character 0 on line 0
- lcd.print("Medium");
- lcd.setCursor(0,1);
- lcd.print("Alchohol level");
- }
- else if (s>=600){
- digitalWrite(9,LOW);
- digitalWrite(10,LOW);
- digitalWrite(11,HIGH);
- lcd.clear();
- lcd.setCursor(0,0); //Start at character 0 on line 0
- lcd.print("High");
- lcd.setCursor(0,1);
- lcd.print("Alchohol level");
- }
- // print the results to the serial monitor:
- Serial.print("sensor = " );
- Serial.print(s);
- Serial.print("\t output = ");
- Serial.println(outputValue);
- // wait 2 milliseconds before the next loop
- // for the analog-to-digital converter to settle
- // after the last reading:
- delay(2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement