Professional Documents
Culture Documents
Kelompok 5 Unit 7 MicroController
Kelompok 5 Unit 7 MicroController
PRAKTIKUM MICROCONTROLLER
UNIT 7
Analog Digital Converter
Oleh:
Nama : M Arifin Wardana
David Danendra R
22/496884/SV/21041
22/503024/SV/21463
Kelas : RE3A1
PROGRAMSTUDITEKNOLOGIREKAYASAELEKTRO
DEPARTEMENTEKNIKELEKTRODANINFORMATIKA
SEKOLAHVOKASI
UNIVERSITASGADJAHMADA
2023
UNIT 7
Analog Digital Converter
FlowChart
Program 1
Program 2
PROGRAM 3
PROGRAM 4
PROGRAM 1
#include "DHT22.h"
#define DHTPIN A4
#define DHTTYPE DHT22
DHT22 dht(DHTPIN);
float th = 0.0;
}
if (nilai == 2){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 1);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 0);
digitalWrite(segment[5], 1);
digitalWrite(segment[6], 0);
}
if (nilai == 3){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 1);
digitalWrite(segment[6], 0);
}
if (nilai == 4){
digitalWrite(segment[0], 1);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 1);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
if (nilai == 5){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 1);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
if (nilai == 6){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 1);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 0);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
if (nilai == 7){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 1);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 1);
digitalWrite(segment[6], 1);
}
if (nilai == 8){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 0);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
if (nilai == 9){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
digitalWrite(segment[7], 1);
}
void display(int a)
{
tampil(a / 100);
digitalWrite(digit[0], 1);
digitalWrite(digit[1], 0);
digitalWrite(digit[2], 0);
delay(10);
digitalWrite(digit[0], 0);
tampil(a % 100 /10);
digitalWrite(digit[0], 0);
digitalWrite(digit[1], 1);
digitalWrite(digit[2], 0);
digitalWrite(segment[7], 0);
delay(10);
digitalWrite(digit[1], 0);
tampil(a%10);
digitalWrite(digit[0], 0);
digitalWrite(digit[1], 0);
digitalWrite(digit[2], 1);
delay(10);
digitalWrite(digit[2], 0);
}
void loop() {
// put your main code here, to run repeatedly:
unsigned long times = millis();
if(times - interval >= 0){
interval = times;
if(temp == false){
temp = true;
} else{
temp = false;
}
}
if(temp == true){
th = dht.getTemperature();
display(th*10);
}
PROGRAM 2
void getTemperature() {
// Wait for a time between measurements
if ((millis() - timerDHT) > TIMEDHT) {
// Update the timer
timerDHT = millis();
humidity = dht.readHumidity();
celsius = dht.readTemperature();
fahrenheit = dht.readTemperature(true);
if (isnan(humidity) || isnan(celsius) || isnan(fahrenheit)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
}
}
void setup(void) {
Wire.begin();
P.begin(2);
P.setInvert(false);
P.setZone(0, MAX_DEVICES - 4, MAX_DEVICES - 1);
P.setZone(1, MAX_DEVICES - 4, MAX_DEVICES - 1);
P.addChar('$', degC);
P.addChar('&', degF);
dht.begin();
}
void loop(void) {
static uint32_t lastTime = 0; // Memory (ms)
static uint8_t display = 0; // Current display mode
static bool flasher = false; // Seconds passing flasher
getTemperature();
P.displayAnimate();
if (P.getZoneStatus(0)) {
switch (display) {
case 0: // Temperature deg Celsius
P.setPause(0, 1000);
P.setTextEffect(0, PA_SCROLL_LEFT, PA_SCROLL_UP);
display++;
dtostrf(celsius, 3, 1, szMesg);
strcat(szMesg, "$");
break;
case 1: // Temperature deg Fahrenheit
P.setTextEffect(0, PA_SCROLL_UP, PA_SCROLL_DOWN);
display++;
dtostrf(fahrenheit, 3, 1, szMesg);
strcat(szMesg, "&");
break;
case 2: // Humidity
P.setTextEffect(0, PA_SCROLL_DOWN, PA_SCROLL_LEFT);
display++;
dtostrf(humidity, 3, 0, szMesg);
strcat(szMesg, "%UR");
break;
}
#include <TM1637Display.h>
void setup() {
// Initialize the TM1637 display
displayTM1637.setBrightness(0x0F); // Set the brightness to maximum
pinMode(sensorPin, INPUT_PULLUP); // Assuming your sensor is connected to pin
2
attachInterrupt(digitalPinToInterrupt(sensorPin), count, FALLING);
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= 1000) {
rpm = (objects / 1.0) * 60;
objects = 0;
previousMillis = currentMillis;
}
// You can also print the RPM to the Serial monitor if needed
Serial.println("RPM: " + String(rpm));
delay(100);
}
void count() {
objects++;
}
PROGRAM 4
#include "LedControl.h"
LedControl lc = LedControl(12, 11, 10, 1); // Inisialisasi dengan pin CLK, CS,
dan DIN
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8); // Atur tingkat kecerahan (0-15) sesuai kebutuhan
lc.clearDisplay(0);
pinMode(sensorPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(sensorPin), count, FALLING);
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= 1000) {
rpm = (objects / 1.0) * 60;
objects = 0;
previousMillis = currentMillis;
}
delay(100);
}
void count() {
objects++;
}