ANALISA PRAKTIKUM

1. ANALISA [kembali]

Mengganti button menjadi potensiometer sehingga lampu led akan menyala dengan tingkat kecerahan tergantung dari nilai potensiometer untuk ketiga buah bentuk komunikasi


2. UART [kembali]

UART atau Universal Asynchronous Receiver-Transmitter adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial.UART atau Universal Asynchronous Receiver Transmitter adalah protokol komunikasi yang umum digunakan dalam pengiriman data serial antara device satu dengan yang lainnya. Sebagai contoh komunikasi antara sesama mikrokontroler atau mikrokontroler ke PC. Dalam pengiriman data, clock antara pengirim dan penerima harus sama karena paket data dikirim tiap bit mengandalkan clock tersebut. Inilah salah satu keuntungan model asynchronous dalam pengiriman data karena dengan hanya satu kabel transmisi maka data dapat dikirimkan
  • Rangkaian
  • Koding
MASTER :


#define SLAVE_ADDR 9

int analogPin = 0;
int val = 0;

void setup() {
  pinMode(analogPin, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  delay(50);
  val = map(analogRead(analogPin), 0, 1023, 255, 1);

  Serial.print(val);

}



SLAVE :



#define SLAVE_ADDR 9

int LED = 13;
int rd;
int br;

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
  Serial.println("I2C Slave demo");

}

void loop() {
  delay(50);

  br = map(rd, 1, 255, 100, 2000);

  digitalWrite(LED, HIGH);
  delay(br);
  digitalWrite(LED, LOW);
  delay(br);

}

3. SPI [kembali]

Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dapat digunakan pada banyak microcontroller, termasuk Arduino. Untuk komunikasi SPI sendiri, membutuhkan paling tidak tiga jalur, yakni MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antar microcontroller, maupun antara microcontroller dengan peripheral lainnya yang mendukung komunikasi dengan SPI

  • Rangkaian
  • Koding

MASTER :

#include<SPI.h>
#define SLAVE_ADDR 9

bool state, lastState;

int analogPin = 0;
int val = 0;

void setup() {
  pinMode(analogPin, INPUT_PULLUP);
  pinMode(analogPin, OUTPUT);
  pinMode(SS, OUTPUT);
  digitalWrite(SS, HIGH);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV8);

}

void loop() {
  state = digitalRead(analogPin);
  if(state != lastState){
  delay(50);
  val = map(analogRead(analogPin), 0, 1023, 255, 1);

  Serial.print(val);
  }
}


SLAVE :


#include<SPI.h>
#define SLAVE_ADDR 9



int LED = 13;
int rd;
int br;

void setup() {
  pinMode(LED, OUTPUT);
  SPCR |= _BV(SPE);
  SPI.attachInterrupt(); 

}

void loop() {
  
  delay(50);

  br = map(rd, 1, 255, 100, 2000);

  digitalWrite(LED, HIGH);
  delay(br);
  digitalWrite(LED, LOW);
  delay(br);

}

4. I2C [kembali]


Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. 

  • Rangkaian

  • Koding

MASTER :

#include<Wire.h>
#define SLAVE_ADDR 9

int analogPin = 0;
int val = 0;

void setup() {
  Wire.begin();
}

void loop() {
  delay(50);
  val = map(analogRead(analogPin), 0, 1023, 255, 1);

  Wire.beginTransmission(SLAVE_ADDR);
  Wire.write(val);
  Wire.endTransmission();

}


SLAVE :


#include<Wire.h>
#define SLAVE_ADDR 9

int LED = 13;
int rd;
int br;

void setup() {
  pinMode(LED, OUTPUT);
  Wire.begin(SLAVE_ADDR);
  Wire.onReceive(receiveEvent);

  Serial.begin(9600);
  Serial.println("I2C Slave demo");

}

void receiveEvent() {
  rd = Wire.read();
  Serial.println(rd);
}
void loop() {
  delay(50);

  br = map(rd, 1, 255, 100, 2000);

  digitalWrite(LED, HIGH);
  delay(br);
  digitalWrite(LED, LOW);
  delay(br);

}


5. Link Download [kembali]
Rangkaian download disini
Html download disini

Tidak ada komentar:

Posting Komentar