Professional Documents
Culture Documents
Disusun Oleh :
Rausan Fikri, S.Si
Herjuno Aji Prayogo, S.Kom
Modul 6
1. Interupsi (Interrupts)
Pada Arduino Uno, Nano, Mini atau yang berbasis atmega328 pin
interupsi terdapat pada pin 2 dan 3. Untuk arduino yang lain, dapat
kita lihat pada tabel berikut.
Board Pin Interupsi
Uno, Nano, Mini, dan 328-
2, 3
based
Mega, Mega2560, MegaADK 2, 3, 18, 19, 20, 21
Micro, Leonardo, dan 32u4-
0, 1, 2, 3, 7
based
semua pin digital,
Zero
kecuali 4
0, 1, 4, 5, 6, 7, 8, 9, A1,
MKR1000 Rev.1
A2
Due Semua pin digital
101 Semua pin digital
Sinyal dasar yang lain dalam I2C Bus adalah sinyal acknowledge
yang disimbolkan dengan ACK Setelah transfer data oleh master
berhasil diterima slave, slave akan menjawabnya dengan mengirim
sinyal acknowledge, yaitu dengan membuat SDA menjadi 0
selama siklus clock ke 9. Ini menunjukkan bahwa Slave telah
menerima 8 bit data dari Master.
3. Array
Skema
Kode Program
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE);
}
void loop() {
digitalWrite(ledPin, state);
}
void blink() {
state = !state;
}
JOB 2 - I2C
Skema
#include <Wire.h>
void setup() {
Wire.begin(); // join i2c bus (address optional for master)
}
byte x = 0;
void loop() {
Wire.beginTransmission(8); // transmit to device #8
Wire.write("x is "); // sends five bytes
Wire.write(x); // sends one byte
Wire.endTransmission(); // stop transmitting
x++;
delay(500);
#include <Wire.h>
void setup() {
Wire.begin(8); // join i2c bus with address #8
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(100);
}
JOB 3 - ARRAY
void loop() {
if (i < 5) {
Serial.print("Variabel angka indeks ke");
Serial.print(i);
Serial.print(" adalah ");
Serial.println(angka[i]);
i++;
}
if (i == 5) {
i = 0;
}
delay(1000);
}