2. Rangkaian Simulasi[Kembali]
2. Rangkaian Simulasi[Kembali]
4. Listing Program [Kembali] - Master
//Master
#include<SPI.h>
#define buzz 7
#define ipbutton 2
int buttonvalue;
int x;
void setup (void)
{
Serial.begin(115200);
pinMode(ipbutton,INPUT_PULLUP);
pinMode(buzz,OUTPUT);
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV4);
digitalWrite(SS,HIGH);
}
void loop(void)
{
byte Mastersend,Mastereceive;
buttonvalue = digitalRead(ipbutton);
if(buttonvalue == LOW)
{
x = 1;
}
else
{
x = 0;
}
digitalWrite(SS, LOW);
Mastersend = x;
Mastereceive=SPI.transfer(Mastersend);
if(Mastereceive == 1)
{
digitalWrite(buzz,HIGH);
Serial.println("Master Buzz ON");
delay(1000);
}
else
{
digitalWrite(buzz,LOW);
}
delay(1000);
}
- Slave
//Slave
#include <Wire.h>
#define SLAVE_ADDR 9
int led2 = 11;
int led1 = 12;
int readI2c;
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Wire.begin(SLAVE_ADDR);
Wire.onReceive(receiveEvent);
Serial.begin(1200);
delay(500);
}
void receiveEvent()
{
readI2c = Wire.read();
}
void loop()
{
Serial.print("Nilai readI2c: ");
Serial.println(readI2c);
if ((readI2c <= 20) and (readI2c >= 0))
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
delay(200);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(200);
}
else
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
delay(1000);
}
}
5. Video Simulasi [Kembali]
6. Analisa [Kembali] 1. Bagaimana pengaruh baterai terhadap pergerakan
motor Jawab : Sebagai sumber tegangan untuk menggerakkan
motor, jikalau tidak ada sumber maka motor tidak akan bergerak 2.
Jelaskan listing program pada bagian yg
menjalankan kondisi masing masing kelompok (bagian deklarasi variabel dan set
input output tidak usah) Jawab : Pada fungsi setup terdapat pendeklarasian
variabel in1 dan in2 sebagai output, kemudian pada fungsi loop terdapat
pernyataan bahwasanya in1 berlogika High sedangkan in2 berlogika Low, itu
berarti motor akan bergerak searah jarum jam. Namun setelah 6 detik, suatu
pernyataan baru akan di eksekusi yang mana in1 akan berlogika Low sedangkan in2
berlogika High, itu berarti motor akan berputar berlawanan arah jarum jam. Dan
setelah 6 detik motor akan kembali ke pernyataan semula.
3. 3. Bagaimana jika pin in1 dan in2 tidak dihubungkan
ke pin pwm, tetapi ke pin digital biasa (misal pin 12 dan 13)
Jawab : Motor akan tetap bergerak, akan tetapi jika
tidak terhubung ke pin pwm maka kecepatan putar motor tidak dapat kita atur
7. Link Download [Kembali]
4. Listing Program [Kembali]
- Master
//Master
#include<SPI.h>
#define buzz 7
#define ipbutton 2
int buttonvalue;
int x;
void setup (void)
{
Serial.begin(115200);
pinMode(ipbutton,INPUT_PULLUP);
pinMode(buzz,OUTPUT);
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV4);
digitalWrite(SS,HIGH);
}
void loop(void)
{
byte Mastersend,Mastereceive;
buttonvalue = digitalRead(ipbutton);
if(buttonvalue == LOW)
{
x = 1;
}
else
{
x = 0;
}
digitalWrite(SS, LOW);
Mastersend = x;
Mastereceive=SPI.transfer(Mastersend);
if(Mastereceive == 1)
{
digitalWrite(buzz,HIGH);
Serial.println("Master Buzz ON");
delay(1000);
}
else
{
digitalWrite(buzz,LOW);
}
delay(1000);
}
#include<SPI.h>
#define buzz 7
#define ipbutton 2
int buttonvalue;
int x;
void setup (void)
{
Serial.begin(115200);
pinMode(ipbutton,INPUT_PULLUP);
pinMode(buzz,OUTPUT);
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV4);
digitalWrite(SS,HIGH);
}
void loop(void)
{
byte Mastersend,Mastereceive;
buttonvalue = digitalRead(ipbutton);
if(buttonvalue == LOW)
{
x = 1;
}
else
{
x = 0;
}
digitalWrite(SS, LOW);
Mastersend = x;
Mastereceive=SPI.transfer(Mastersend);
if(Mastereceive == 1)
{
digitalWrite(buzz,HIGH);
Serial.println("Master Buzz ON");
delay(1000);
}
else
{
digitalWrite(buzz,LOW);
}
delay(1000);
}
- Slave
//Slave
#include <Wire.h>
#define SLAVE_ADDR 9
int led2 = 11;
int led1 = 12;
int readI2c;
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Wire.begin(SLAVE_ADDR);
Wire.onReceive(receiveEvent);
Serial.begin(1200);
delay(500);
}
void receiveEvent()
{
readI2c = Wire.read();
}
void loop()
{
Serial.print("Nilai readI2c: ");
Serial.println(readI2c);
if ((readI2c <= 20) and (readI2c >= 0))
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
delay(200);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(200);
}
else
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
delay(1000);
}
}
#include <Wire.h>
#define SLAVE_ADDR 9
int led2 = 11;
int led1 = 12;
int readI2c;
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Wire.begin(SLAVE_ADDR);
Wire.onReceive(receiveEvent);
Serial.begin(1200);
delay(500);
}
void receiveEvent()
{
readI2c = Wire.read();
}
void loop()
{
Serial.print("Nilai readI2c: ");
Serial.println(readI2c);
if ((readI2c <= 20) and (readI2c >= 0))
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
delay(200);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(200);
}
else
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
delay(1000);
}
}
5. Video Simulasi [Kembali]
6. Analisa [Kembali]
1. Bagaimana pengaruh baterai terhadap pergerakan
motor
Jawab :
Sebagai sumber tegangan untuk menggerakkan
motor, jikalau tidak ada sumber
maka motor tidak akan bergerak
2.
Jelaskan listing program pada bagian yg
menjalankan kondisi masing masing
kelompok (bagian deklarasi variabel dan set
input output tidak usah)
Jawab :
Pada fungsi setup terdapat pendeklarasian
variabel in1 dan in2 sebagai output,
kemudian pada fungsi loop terdapat
pernyataan bahwasanya in1 berlogika High
sedangkan in2 berlogika Low, itu
berarti motor akan bergerak searah jarum jam.
Namun setelah 6 detik, suatu
pernyataan baru akan di eksekusi yang mana in1 akan
berlogika Low sedangkan in2
berlogika High, itu berarti motor akan berputar
berlawanan arah jarum jam. Dan
setelah 6 detik motor akan kembali ke pernyataan
semula.
3. 3. Bagaimana jika pin in1 dan in2 tidak dihubungkan
ke pin pwm, tetapi ke pin digital
biasa (misal pin 12 dan 13)
Jawab :
Motor akan tetap bergerak, akan tetapi jika
tidak terhubung ke pin pwm maka
kecepatan putar motor tidak dapat kita atur
7. Link Download [Kembali]
2. Gambar Rangkaian
Tidak ada komentar:
Posting Komentar