Penampil Data

1. Menampilkan Counter 0 - 9 pada 7-segmen.

Gambar 1. Tampilan Counter 0-9 pada 7-segmen 1 digit

Kode Program:

  1. int a = 0;
  2. void setup() {
  3.   for (int i = 0; i < 4; i++) {
  4.     pinMode(i + 8, OUTPUT);
  5.   }
  6. }
  7. void loop() {
  8.   digitalWrite(8, bitRead(a, 0));
  9.   digitalWrite(9, bitRead(a, 1));
  10.   digitalWrite(10, bitRead(a, 2));
  11.   digitalWrite(11, bitRead(a, 3));
  12.   a++;
  13.   if (a > 9) a = 0;
  14.   delay(1000);
  15. }


2. Membaca potensio dan menampilkan nilainya pada 7-segmen 4 digit.

Gambar 2. Tampilan nilai analog Potensio pada 7-segmen 4 digit dan Serial Monitor

Kode Program:
  1. #include <SevSeg.h>
  2. SevSeg sevseg;
  3. void setup() {
  4.   byte numDigits = 4;
  5.   byte digitPins[] = {2, 3, 4, 5};
  6.   byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
  7.   bool resistorsOnSegments = false; // 'false' means resistors are on digit pins
  8.   byte hardwareConfig = COMMON_ANODE; // See README.md for options
  9.   bool updateWithDelays = false; // Default 'false' is Recommended
  10.   bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros
  11.   bool disableDecPoint = true;
  12.   sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments,
  13.   updateWithDelays, leadingZeros, disableDecPoint);
  14.   sevseg.setBrightness(90);
  15.   Serial.begin(9600);
  16. }
  17. void loop() {
  18.   static unsigned long timer = millis();
  19.   if (millis() - timer >= 100) {
  20.     timer = millis();
  21.     int a = analogRead(A0);
  22.     Serial.println(a);
  23.     sevseg.setNumber(a);
  24.   }
  25.   sevseg.refreshDisplay(); // Must run repeatedly
  26. }


3. Membaca potensio dan menampilkan nilainya pada LCD I2C.

Gambar 3. Tampilan nilai analog Potensio pada LCD I2C dan Serial Monitor

Kode Program:
  1. #include <LiquidCrystal_I2C.h>
  2. LiquidCrystal_I2C lcd(0x27, 16, 2);
  3. void setup() {
  4.   Serial.begin(9600);
  5.   lcd.init();
  6.   lcd.clear();
  7. }
  8. void loop() {
  9.   int a = analogRead(A0);
  10.   Serial.println(a);
  11.   lcd.print("          ");
  12.   lcd.setCursor(0, 0);
  13.   lcd.print(a);
  14.   delay(100);
  15. }

4. Membaca potensio dan menampilkan nilainya pada OLED I2C.

Gambar 4. Tampilan nilai analog Potensio pada OLED dan Serial Monitor

Kode Program:

  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #define SCREEN_WIDTH 128  // OLED display width, in pixels
  5. #define SCREEN_HEIGHT 64  // OLED display height, in pixels
  6. Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
  7. void setup() {
  8.   Serial.begin(9600);
  9.   if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
  10.     Serial.println(F("SSD1306 allocation failed"));
  11.     for (;;)
  12.       ;
  13.   }
  14.   display.setTextColor(WHITE);
  15. }
  16. void loop() {
  17.   int a = analogRead(A0);
  18.   Serial.println(a);
  19.   display.clearDisplay();
  20.   display.setTextSize(1);
  21.   display.setCursor(0, 0);
  22.   display.print("Nilai Potensio: ");
  23.   display.setTextSize(2);
  24.   display.setCursor(0, 10);
  25.   display.print(a);
  26.   display.display();
  27.   delay(100);
  28. }


Link download file Proteus dan kode Program no. 1 - 4: 

No comments:

Post a Comment