Lm 35 dan lcd
/*
Program aplikasi pengukur suhu
Arduino LM35
*/
#include <LiquidCrystal.h>
LiquidCrystal lang(12, 11, 5, 4, 3, 2);
int lm35 = A0;
int val = 0;
float temp;
void setup()
{
pinMode(A0, INPUT);
lang.begin(16, 2);
lang.setCursor(0,0);
lang.print("Arduino");
lang.setCursor(0,1);
lang.print("Pengukur Suhu");
delay(1000);
}
void loop()
{
lang.clear();
val = analogRead(lm35); // nilai ADC terbaca
delay(100);
lang.setCursor(0,0);
lang.print("Suhu celsius:");
lang.setCursor(0,1);
temp = val * 5;
temp *= 100;
temp /= 1023;
lang.print(temp);
}
/*
*
*
*
Keterangan
Sambungkan
Sambungkan
Sambungkan
skema:
LCD RS pin ke pin 12 Arduino
LCD enable pin ke pin 11 Arduino
LCD pins D4 s.d D7 ke pin 5 s.d 2 Arduino
3. Lm 35 dengan potensiometer
/*
lm35 sketch
prints the temperature to LCD
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int inPin = 0;
void setup()
{
lcd.begin(16, 2);
}
void loop()
{
int value = analogRead(inPin);
lcd.setCursor(0, 1);
float millivolts = (value / 1024.0) * 5000;
float celsius = millivolts / 10;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(celsius);
lcd.print(" Celsius");
lcd.setCursor(0,1);
lcd.print((celsius * 9)/ 5 + 32);
lcd.print(" Fahrenheit");
delay(10000);
}
//
//
//
//
//
//
//
Arduvino_tempCF_dualled
Arduvino.com - Arduino in the world of wine
Setting up variables and including LEDDisplay.h
The library is available at: https://github.com/rastating/LEDDisplay
Integer used for Celsius because of max two digits in Dual Led
Have in mind that you need to specify the right PIN you are using
#include
LEDDisplay *led;
int tempC;
int tempPin = 0;
// Array will be needed for feeding two digits into the display
int array[2];
// Setting up pins for the display
void setup()
{
int digitFlagPins[] = {10, 11};
int segmentPins[] = {2, 3, 4, 5 ,6 ,7 ,8, 9};
int decimalPointPin = 9;
led = new LEDDisplay(2, digitFlagPins, segmentPins, decimalPointPin);
}
// Reading analog date from the sensor
1 x Arduino
1 x 74HC595 Shift register
1 x 4 Digit 7 Segment display
4 x 220ohm Resistors
1 x TMP36 Temperature sensor
#include "SevSegShift.h"
SevSegShift sevsegshift;
byte tmp[16] = {252, 96, 218, 242, 102, 182, 190, 224, 254, 230, 238, 62,
156, 122, 158, 142};
void setup() {
sevsegshift.Begin(0,5, 4, 3, 2, 8, 9, 10);
Serial.begin(9600);
}
void loop() {
//sevsegshift.SetDisplayData(tmp[1], tmp[2], tmp[3], tmp[4]);
sevsegshift.SetData(random(9999));
for(int i =60; i >= 0; i=i-5)
{
sevsegshift.UpdateDisplay();
delay(i);
}
}
Contoh code program 2 :
/*
Written by Jon Maguire 2014
Soure is in the public domain and has no promise that iw ill work
or not blow up your property.
void setup()
{
// init display
sevsegshift.Begin(0,5, 4, 3, 2, 8, 9, 10);
// Init timer
Timer1.initialize(15000);
Timer1.attachInterrupt(DisplayInterrupt);
// Init array for smoothing
for(byte i = 0; i<numReadings;i++)
readings[i] = 0;
// Init serial
//Serial.begin(9600);
}
void DisplayInterrupt()
{
sevsegshift.UpdateDisplay();
counter++;
if(counter > 65000)
{
sevsegshift.SetData(temperature);
counter = 0;
}
}
// Returns temp in degrees C as a float
float readTemp()
{
return (analogRead(tempPin) * 0.004882814) * 100;
}
word GetV()
{
return analogRead(tempPin);
}
void loop()
{
total = total - readings[index];
readings[index] = GetV();
total = total + readings[index];
index++;
if(index >= numReadings)
index = 0;
average = total/numReadings;
temperature = average * 0.4882814;
//Serial.println(readings[index]);
int h = int(temperature);
int l = (temperature-(int)temperature)*100;
sevsegshift.SetDataF(h,l);
delay(10);
}
6. Sensor HCSR04/ultrasonic
#include <Ultrasonic.h>
#define TRIGGER_PIN 12
#define ECHO_PIN
13
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
void setup()
{
Serial.begin(9600);
}
void loop()
{
float cmMsec, inMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
Serial.print("MS: ");
Serial.print(microsec);
Serial.print(", CM: ");
Serial.print(cmMsec);
Serial.print(", IN: ");
Serial.println(inMsec);
delay(1000);
}
Kalau tidak ada pesan error maka modul ultrasonic akan langsung bekerja mengukur jarak
benda di depannya. Gunakan Serial Monitor (Ctrl+Shift+M) pada software Arduino untuk
melihat hasil pengukuran.
#define SDM_IO_TIMEOUT 1000
int TrigPin = 12;
int EchoPin = 13;
unsigned long ultrasoundDuration;
int timeout;
unsigned long tStartPing = 0;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
pinMode(TrigPin, OUTPUT); //pin is output
pinMode(EchoPin, INPUT); // pin is now input
}
void loop() {
sensorValue = read_sdm_io_range();
Serial.print(sensorValue);
Serial.println(" cm");
delay(100);
}
//SDM-IO Ultrasonic Range Sensor distance function
float read_sdm_io_range()
{
unsigned char pin = 0;
unsigned int time_flag = 0;
digitalWrite(TrigPin, HIGH);
delayMicroseconds(2);
digitalWrite(TrigPin, LOW);
delayMicroseconds(10);
digitalWrite(TrigPin, HIGH);
tStartPing = micros();
timeout = 0;
pin = digitalRead(EchoPin);
while(pin)
{
pin = digitalRead(EchoPin);
time_flag++;
if(time_flag > SDM_IO_TIMEOUT)
{
timeout = 1;
break;
}
}
ultrasoundDuration = micros() - tStartPing;
Serial.print(ultrasoundDuration);
Serial.print(" us, ");
Serial.print(ultrasoundDuration*0.017, DEC); // result in cm
Serial.print(" cm");
Serial.println();
if (timeout)
return 999;
else
return ultrasoundDuration * 0.017; // result in cm
}
#define trigPin 3
#define echoPin 2
int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;
int led5 = 9;
int led6 = 8;
int led7 = 7;
int led8 = 6;
int led9 = 5;
int led10 = 4;
int maxDistance = 250;
int minDistance = 2;
long microSecond, cmDistance;
int ledTime = 400;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
pinMode(led10, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
microSecond = pulseIn(echoPin, HIGH);
cmDistance = microSecond/58.3;
if (cmDistance >= maxDistance)
{
Serial.println(.>250cm);
}
else if (cmDistance == 5)
{
Serial.println(5 cm);
digitalWrite(led1, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
}
else if (cmDistance == 10)
{
Serial.println(10 cm);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
else if (cmDistance == 15)
{
Serial.println(15 cm);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
else if (cmDistance == 20)
{
Serial.println(20 cm);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
}
else if (cmDistance == 25)
{
Serial.println(25 cm);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
else if (cmDistance == 30)
{
Serial.println(30 cm);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
}
else if (cmDistance == 35)
{
Serial.println(35 cm);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
}
else if (cmDistance == 40)
{
Serial.println(40 cm);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
}
else if (cmDistance == 45)
{
Serial.println(45 cm);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
digitalWrite(led9, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
}
else if (cmDistance == 50)
{
Serial.println(50 cm);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
digitalWrite(led9, HIGH);
digitalWrite(led10, HIGH);
delay(ledTime);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
digitalWrite(led10, LOW);
}
else if (cmDistance <= minDistance)
{
Serial.println(.< 2cm);
}
else {
Serial.print(cmDistance);
Serial.println( cm);
}
delay(100);
}