Tugas Pendahuluan 2




Tugas Pendahuluan 2 Modul 3
(Percobaan 4 Tanpa Kondisi)

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino



2. Keypad










3. LCD







Diagram Blok:









3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :





Prinsip Kerja :

   Dapat dilihat dari gambar diatas, jika keypad pada arduino master ditekan maka dengan komunikasi di arduino slave akan diproses yang nantinya akan muncul tulisan pada LCD.
 
4. Flowchart dan Listing Program [Kembali]

Flowchart :








Listing Program :

// MASTER
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 3;
// Array to represent keys on keypad
char hexaKeys[ROWS][COLS] = {
 {'1', '2', '3'},
 {'4', '5', '6'},
 {'7', '8', '9'},
 {'*', '0', '#'}
};
byte rowPins[ROWS] = {7, 6, 5, 4};
byte colPins[COLS] = {8, 9 , 10};
// Create keypad object
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup()
{
Serial.begin(9600);
}
void loop()
{
 char customKey = customKeypad.getKey();
 if (customKey)
 {
 Serial.write(customKey);
 }
 delay(20);
}


//SLAVE
#include <LiquidCrystal.h>
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
char message;
void setup()
{
 Serial.begin(9600);
 lcd.begin(16, 2);
}
void loop()
{
 lcd.setCursor(0, 0);
 lcd.print("Tombol :");
 if (Serial.available())
 {
 message = Serial.read();
 if (message)
 {
 lcd.print(message);
 }
}
}

5. Kondisi [Kembali]

Percobaan 4 Tanpa Kondisi dimana menggunakan komunikasi UART yang mana ketika tombol ditekan maka akan lansung muncul di LCD


6. Video Simulasi [Kembali]








7. Download File [Kembali]

HTML klik disini
File Rangkaian klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini

Tugas Pendahuluan 1




Tugas Pendahuluan 1 Modul 3
(Percobaan 1 Kondisi 7)

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino



2. DipSwitch








3. Resistor





4. LED







Diagram Blok:







3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :





Prinsip Kerja :

    Dapat dilihat dari rangkaian diatas, diatas menggunakan rangkaian komunikasi, yang mana terdiri dari 4 pull up dan 4 pull Down. Jika 4 Pull Up dan 3 Pull Down aktif maka akan menghasilkan running LED.Jika 0 Pull Up dan 3 Pull Down akan menyebabkan blinking LED. Jika diluar dari kondisi itu maka tidak akan ada LED yang aktif.
 
4. Flowchart dan Listing Program [Kembali]

Flowchart :










Listing Program :

//MASTER
#define DS1 2
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9
bool b1,b2,b3,b4,b5,b6,b7,b8;
void setup()
{
 Serial.begin(9600);
 pinMode(DS1, INPUT);
 pinMode(DS2, INPUT);
 pinMode(DS3, INPUT);
  pinMode(DS4, INPUT);
 pinMode(DS5, INPUT_PULLUP);
 pinMode(DS6, INPUT_PULLUP);
 pinMode(DS7, INPUT_PULLUP);
 pinMode(DS8, INPUT_PULLUP);
}
void loop()
{
 int b8 = digitalRead(DS8);
 int b7 = digitalRead(DS7);
 int b6 = digitalRead(DS6);
 int b5 = digitalRead(DS5);
 int b4 = digitalRead(DS4);
 int b3 = digitalRead(DS3);
 int b2 = digitalRead(DS2);
 int b1 = digitalRead(DS1);
 // Hidupkan LED sesuai dengan tombol yang ditekan
 int y = b1+b2+b3+b4;
 int x = b5+b6+b7+b8;
 if (x==4&&y==3)
 {
 Serial.write('r');
 }
 else if (x==0&&y==3)
 {
 Serial.write('b');
 }
 else
 {
 Serial.write('m');
 }
 
}


//SLAVE
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
char message;
void setup()
{
 Serial.begin(9600);
 for (int i = 0; i < 8; i++)
 {
 pinMode(led[i], OUTPUT);
 }
}
void loop()
{
 if (Serial.available())
{
 message = Serial.read();
 if (message == 'r')
 {
for (int i = 0; i < 8; i++) {
    digitalWrite(led[i], HIGH); // Turn LED on
    delay(100); // Adjust the delay as needed
    digitalWrite(led[i], LOW); // Turn LED off
  }
 }
 else if (message == 'b')
 {
 for (int i = 0; i < 8; i++) {
    digitalWrite(led[i], HIGH); // Turn LED on
  }
  delay(100); // Adjust the delay as needed for on state
  for (int i = 0; i < 8; i++) {
    digitalWrite(led[i], LOW); // Turn LED on
  }
  delay (100);
 }
 else if (message == 'm')
 {
 for (int i = 0; i < 8; i++) {
    digitalWrite(led[i], LOW); // Turn LED off
  }
 }
}
}



5. Kondisi [Kembali]

Percobaan 1 Kondisi 7
    4 switch dalam pull-down & 4 switch dalam pull-up, 3 switch pull-down dan 4 switch pull up mengaktifkan running led,3 switch pull down dan 0 switch pull up mengaktifkan blinking led.

6. Video Simulasi [Kembali]








7. Download File [Kembali]

HTML klik disini
File Rangkaian klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini

Laporan Akhir 2




Laporan Akhir 2 Modul 2
(Percobaan 6)

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino



2. Seven Segmen











2. DipSwitch







4. Resistor









Diagram Blok:







3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :






Prinsip Kerja :

   Dapat dilihat pada gambar diatas, jika 3 Switch aktif maka akan muncul angka 3,2,1 dalam hitungan mundur. Lalu setelah itu akan muncul tulisan L,E,I secara bergantian ditampilan seven segmen. Kalau kurang dari 3 switch, maka tidak ada yang keluar dari seven segmen.
 
4. Flowchart dan Listing Program [Kembali]

Flowchart :








Listing Program :

#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
#define PB1 2
#define PB2 3
#define PB3 4
#define PB4 5
int step = 100;
int delaytime=5; //makin kecil delay, makin cepat motor berputar

void setup(){
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(PB1, INPUT);
pinMode(PB2, INPUT);
pinMode(PB3, INPUT);
pinMode(PB4, INPUT);
}

void loop(){
int b4 = digitalRead(PB4);
int b3 = digitalRead(PB3);
int b2 = digitalRead(PB2);
int b1 = digitalRead(PB1);

if (b4 == HIGH){
  maju();
}
else if (b3 == HIGH){
  mundur();
}
else if (b2 == HIGH){
  for (int i = 0; i < 60; i ++){
    maju();
  }
  for (int i = 0; i < 60; i++){
    mundur();  
  }
}
else if (b1 == HIGH){
  for (int i = 0; i < 50; i++){
    maju();
  }
  delay(2000);
  for (int i = 0; i < 50; i++){
    mundur();
  }
}
}


void maju(){
//step 4
step1();
delay(delaytime);
//step 3
step2();
delay(delaytime);
//step 2
step3();
delay(delaytime);
//step 1
step4();
delay(delaytime);
}

void mundur(){
//step 4
step4();
delay(delaytime);
//step 3
step3();
delay(delaytime);
//step 2
step2();
delay(delaytime);
//step 1
step1();
delay(delaytime);
}

void step1(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
}
void step2(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void step3(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void step4(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}

5. Video Demo  [Kembali]





6. Kondisi [Kembali]

Percobaan 6 Kontrol Putaran Motor Stepper


7. Download File [Kembali]

HTML klik disini
File Rangkaian klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini

Modul 4

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan Percob...