DAFTAR ISI
1. Prosedur
2. Hardware dan Diagram Blok
3. Rangkaian Simulasi dan Prinsip Kerja
4. Flowchart
5. Kondisi
6. Video Simulasi
7. Download File
MODUL 2: PWM, ADC, dan Interrupt
Selasa, 19 Maret 2024
Tugas Pendahuluan 1
1. Prosedur [Daftar Isi]
1. Susunlah susunan komponen dalam perangkat lunak Proteus sesuai dengan kondisi eksperimen.
2. Buatlah skrip untuk perangkat Arduino menggunakan perangkat lunak Arduino IDE.
3. Lakukan proses kompilasi untuk skrip tersebut, kemudian unggah ke perangkat Arduino.
4. Setelah proses pengunggahan selesai, aktifkan simulasi rangkaian dalam perangkat lunak Proteus.
2. Hardware dan Diagram Blok [Daftar Isi]
a) Modul Arduino
b) Motor DC
3. Rangkaian Simulasi dan Prinsip Kerja [Daftar Isi]
Percobaan 4
Pada kondisi 6, input terdiri dari keypad 4x4 dengan output berupa motor DC. Percobaan ke-4 ini bertujuan untuk mengontrol motor servo menggunakan PWM. Keypad A, B, C, dan D digunakan untuk mengatur PWM dengan duty cycle secara berurutan 0%, 25%, 50%, dan 100%. Sementara itu, keypad 1 hingga 9 digunakan untuk mengatur PWM dengan nilai yang dihasilkan dari perkalian 25 dengan angka yang dipilih pada keypad. Sebagai contoh, jika keypad 5 dipilih, maka PWM yang dihasilkan adalah 25 × 5 = 125.
Percobaan 4
#include <Servo.h>
#include <Keypad.h>
Servo servoMotor;
const int servoPin = 11; // PWM pin for servo
const int numRows = 4; // Number of rows in keypad
const int numCols = 4; // Number of columns in keypad
char keys[numRows][numCols] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[numRows] = {9, 8, 7, 6}; // Rows 0 to 3
byte colPins[numCols] = {5, 4, 3, 2}; // Columns 0 to 2
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, numRows, numCols);
void setup() {
servoMotor.attach(servoPin);
servoMotor.write(90); // Initial position
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
Serial.println(key);
// Perform actions based on the key pressed
switch (key) {
case 'A':
// Move servo to position 0 degrees
servoMotor.write(0);
break;
case 'B':
// Move servo to position 45 degrees
servoMotor.write(45);
break;
case 'C':
// Move servo to position 90 degrees
servoMotor.write(90);
break;
case 'D':
// Move servo to position 180 degrees
servoMotor.write(180);
break;
default:
// For keys 1-9, calculate PWM value (25 * keypad number) and set servo position accordingly
if (key >= '1' && key <= '9') {
int pwmValue = 25 * (key - '0'); // Convert char to int
servoMotor.write(map(pwmValue, 0, 225, 0, 180)); // Map PWM value to servo position (0-180)
}
break;
}
}
}
5. Kondisi [Daftar Isi]
Pada percobaan kali ini, kami melakukan percobaan ke-4 dengan mengontrol motor servo dengan PWM dalam kondisi 6, yaitu keypad A hingga D memberikan PWM 0%, 25%, 50%, dan 100% duty cycle secara berurutan, sementara key 1 hingga 9 memberikan PWM dengan nilai (25 dikali angka keypad).
6. Video Simulasi [Daftar Isi]
Percobaan 4
7. Download File [Daftar Isi]
Untuk HTML di sini
Unduh Rangkaian Simulasi di sini
Unduh Program di sini
Unduh Library Sensor di sini
Unduh Video Simulasi di sini



0 Komentar