1. Lm 35 dan lcd
Berdasarkan gambar wiring diagram tersebut.
LCD RS pin dihubungkan ke digital pin 12 LCD Enable pin dihubungkan ke digital pin 11 LCD D4 pin dihubungkan ke digital pin 5 LCD D5 pin dihubungkan ke digital pin 4 LCD D6 pin dihubungkan ke digital pin 3 LCD D7 pin dihubungkan ke digital pin 2 Vout LM35 dihubungkan ke analog pin A0
/*Program aplikasi pengukur suhuArduino LM35*/
#include
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);}
2. Lm 35 dengan kipas dan relay
/*Keteranganskema:*SambungkanLCDRSpinkepin12Arduino*SambungkanLCDenablepinkepin11Arduino*SambungkanLCDpinsD4s.dD7kepin5s.d2Arduino*SambungkanLCD+5dangroundkepin+5VdangroundArduino*SambungkanLCDVopinkepotensiometer.GunapotensiometeriniadalahuntukmengaturkontrasLCD*SambungkanICLM35bagianoutput(Kakitengah)kepinA0(Analoginputpin0)Arduino*Pin13arduinosebagaioutput,jikatemp>=30derajatPin13logik1*/
//ProgramdemoLCD
//GunakanlibraryLCD#include"LiquidCrystal.h";
//InisialisasiLCDdanmenentukanpinyangdipakaiLiquidCrystal lcd(12, 11, 5, 4, 3, 2);//deklarasivariabelfloat tempC;int tempPin = 0;
void setup() {pinMode(13,OUTPUT);// Serial.begin(9600);// Set jumlah kolom dan baris LCDlcd.begin(16, 2);// Tulis Temperatur di LCDlcd.print("Temperatur:");}
void loop() {// Set cursor ke kolom 0 dan baris 1// Catatan: Baris dan kolom diawali dengan 0lcd.setCursor(0, 1); // baca data dari sensortempC=analogRead(tempPin);// konversi analog ke suhutempC=(5.0*tempC*100.0)/1024.0;// tampilkan ke LCDlcd.print(tempC);// Serial.println(tempC);if(tempC>=30) //jika temperatur >=30 derajatdigitalWrite(13,HIGH);else digitalWrite(13,LOW);delay(2000); // berhenti 2 detik untuk menunggu perubahan temperatur}
3. Lm 35 dengan potensiometer
/*lm35 sketchprints the temperature to LCD*/#include
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); }
4. Arduino dengan seven segmen
// 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 displayint 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// Math operations for Volts>Celsius
void loop(){ tempC = analogRead(tempPin); tempC = tempC * 0.48828125;
// Transforming the temperature value from integer into digits inside the array
for (int i = 2; i >= 0; i--) { array[i] = tempC % 10; tempC /= 10;}
// Display both digits corresponding to the measured temperature
led->displayNumber(array[1], 1); led->displayNumber(array[2], 0);
}
5. Lm 35 dengan shift register
1 x Arduino1 x 74HC595 Shift register1 x 4 Digit 7 Segment display4 x 220ohm Resistors1 x TMP36 Temperature sensor
Contoh code program 1 :
#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 workor not blow up your property.
Requires the "TimerOne" libary*/
#include "SevSegShift.h"#include
SevSegShift sevsegshift;byte tmp[16] = {252, 96, 218, 242, 102, 182, 190, 224, 254, 230, 238, 62, 156, 122, 158, 142};byte tempPin = 0;float scaler = 0.004882814;volatile float temperature;volatile word counter = 0;
const byte numReadings = 100;word readings[numReadings];byte index = 0;word total = 0;word average = 0;
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 65000) { sevsegshift.SetData(temperature); counter = 0; }}
// Returns temp in degrees C as a floatfloat 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
#define TRIGGER_PIN 12#define ECHO_PIN 13
Ultrasonic ultrasonic(TRIGGER_PIN,ECHO_PIN);
voidsetup(){ Serial.begin(9600);}
voidloop(){floatcmMsec,inMsec;longmicrosec=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
intTrigPin=12;intEchoPin=13;unsignedlongultrasoundDuration;inttimeout;unsignedlongtStartPing=0;intsensorValue=0;
voidsetup(){ Serial.begin(9600); pinMode(TrigPin,OUTPUT);//pin is output pinMode(EchoPin,INPUT);// pin is now input}
voidloop(){ sensorValue=read_sdm_io_range(); Serial.print(sensorValue); Serial.println(" cm"); delay(100);
}
//SDM-IO Ultrasonic Range Sensor distance functionfloatread_sdm_io_range(){unsignedcharpin=0;unsignedinttime_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) return999;else returnultrasoundDuration*0.017;// result in cm}
7. HCSR04 dan LCD
#definetrigPin3#defineechoPin2intled1 = 13;intled2 = 12;intled3 = 11;intled4 = 10;intled5 = 9;intled6 = 8;intled7 = 7;intled8 = 6;intled9 = 5;intled10 = 4;intmaxDistance = 250;intminDistance = 2;longmicroSecond, cmDistance;intledTime = 400;voidsetup() {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);}voidloop() {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);}elseif(cmDistance == 5){Serial.println(5 cm);digitalWrite(led1,HIGH);delay(ledTime);digitalWrite(led1,LOW);}elseif(cmDistance == 10){Serial.println(10 cm);digitalWrite(led1,HIGH);digitalWrite(led2,HIGH);delay(ledTime);digitalWrite(led1,LOW);digitalWrite(led2,LOW);}elseif(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);}elseif(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);}elseif(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);}elseif(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);}elseif(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);}elseif(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);}elseif(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);}elseif(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);}elseif(cmDistance
Top Related