Professional Documents
Culture Documents
Kelompok 5 Unit 6 MicroController
Kelompok 5 Unit 6 MicroController
PRAKTIKUM MICROCONTROLLER
UNIT 6
SEVEN SEGMENT & DOT MATRIX
Oleh:
Nama : M Arifin Wardana
David Danendra R
22/496884/SV/21041
22/503024/SV/21463
Kelas : RE3A1
PROGRAMSTUDITEKNOLOGIREKAYASAELEKTRO
DEPARTEMENTEKNIKELEKTRODANINFORMATIKA
SEKOLAHVOKASI
UNIVERSITASGADJAHMADA
2023
UNIT 6
SEVEN SEGMENT & DOT MATRIX
FlowChart
Program 1
Program 2
PROGRAM 3
PROGRAM 1
char letters[] = {'d', 'a', 'v', 'i', 'd'}; // Array karakter "david"
int currentLetterIndex = 0; // Indeks huruf saat ini
void setup() {
pinMode(buttonAPin, INPUT_PULLUP);
pinMode(buttonBPin, INPUT_PULLUP);
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
}
void loop() {
// Baca tombol A
if (digitalRead(buttonAPin) == LOW) {
// Tampilkan huruf berikutnya
currentLetterIndex = (currentLetterIndex + 1) % 4;
}
// Baca tombol B
if (digitalRead(buttonBPin) == LOW) {
// Tampilkan huruf sebelumnya
currentLetterIndex = (currentLetterIndex - 1 + 4) % 4;
}
#include <LedControl.h>
int currentNumber = 0;
byte digitPatterns[10][8] = {
{0x3E, 0x45, 0x49, 0x51, 0x61, 0x41, 0x3E, 0x00}, // 0
{0x04, 0x0C, 0x14, 0x04, 0x04, 0x04, 0x1F, 0x00}, // 1
{0x1E, 0x21, 0x01, 0x02, 0x0C, 0x10, 0x3F, 0x00}, // 2
{0x1E, 0x21, 0x01, 0x0E, 0x01, 0x21, 0x1E, 0x00}, // 3
{0x08, 0x18, 0x28, 0x48, 0x7F, 0x08, 0x08, 0x00}, // 4
{0x3F, 0x20, 0x20, 0x3E, 0x01, 0x21, 0x1E, 0x00}, // 5
{0x1C, 0x02, 0x01, 0x3F, 0x21, 0x21, 0x1E, 0x00}, // 6
{0x3F, 0x01, 0x02, 0x04, 0x08, 0x10, 0x10, 0x00}, // 7
{0x1E, 0x21, 0x21, 0x1E, 0x21, 0x21, 0x1E, 0x00}, // 8
{0x1E, 0x21, 0x21, 0x3E, 0x20, 0x10, 0x0E, 0x00} // 9
};
void setup(){
lc.shutdown(0, false);
lc.setIntensity(0, 15);
void loop(){
// Mengecek tombol penambah dan pengurang
if (digitalRead(buttonPlusPin) == LOW) {
currentNumber = (currentNumber + 1) % 10;
displayNumber(currentNumber);
delay(500); // Debouncing delay
}
if (digitalRead(buttonMinusPin) == LOW) {
currentNumber = (currentNumber + 9) % 10;
displayNumber(currentNumber);
delay(500); // Debouncing delay
}
}
#include <Arduino.h>
#include <U8g2lib.h>
// 'matrix_display_counter', 32x8px
const unsigned char epd_bitmap_matrix_display_counter [] = {
0x7e, 0x67, 0x75, 0x77, 0xef, 0x21, 0x15, 0x44, 0xe7, 0x21, 0x15, 0x44, 0xe3, 0x27,
0x77, 0x77,
0xe7, 0x24, 0x11, 0x15, 0xef, 0x24, 0x11, 0x15, 0x7e, 0x77, 0x71, 0x77, 0x00, 0x00,
0x00, 0x00
};
byte digits[6] = {0, 0, 0, 0, 0, 0}; // individual digits to be displayed on the matrix display
byte digits_offset_perc[6] = {0, 0, 0, 0, 0, 0}; // y offset for the individual digits - percentage
0-100%
char digit_char[2]; // helper array for storing C-style string
char digit_char_next[2]; // helper array for storing C-style string
void setup(void) {
u8g2.begin(); // begin function is required for u8g2 library
u8g2.setContrast(10*16); // set display contrast 0-255
pinMode(7, INPUT_PULLUP);
}
void loop(void) {
for (int i=5; i>=0; i--) { // go from the last digit to the first digit
itoa(digits[i], digit_char, 10); // convert digit number to helper C-style string array
itoa((digits[i]+1) % 10, digit_char_next, 10); // convert next digit number to helper C-style
string array