Archive for the ‘arduino’ Category

Function pulseInLong() pada Arduino Programming Language

Wednesday, March 3rd, 2021

Deskripsi

Merupakan fungsi alternatif dari pulseIn() yang lebih baik untuk menghandle pulsa yang lebih panjang dan skenario yang terpengaruh oleh interupsi

Contoh untuk nilai HIGH akan menunggu pulsa dari LOW ke HIGH, start timing dan menunggu untuk kembali ke LOW untuk stop timing. Nilai yang diperoleh di sini adalah lebar pulsa dalam microsecond atau nilai nol apabila tidak diperoleh pulsa hingga time out

Fungsi ini akan menampilkan error untuk pulsa yang lebih lebar. Hanya akan bekerja dalam nilai 10uS hingga 3 menit.

Syntax

pulseInLong(pin, value)

pulseInLong(pin, value, timeout)

Parameters

pin: Nomor pin Arduino Board di mana pulsa akan dibaca. Tipe data yang diijinkan int

value: tipe pulsa yang dibaca, HIGH atau LOW. Tipe data yang diijinkan int

timeout(optional): nilai dalam microsecond untuk menunggu pulsa dimulai, default dalam satu detik. Tipe data yang diijinkan unsigned long

Returns:

Lebar pulsa dalam microsecond atau nol apabila tidak ada pulsa hingga timeout. Tipe data yang diijinkan unsigned long

Contoh Program:

int pin = 7;                    //nomor pin Arduino Board yang digunakan
unsigned long duration;         //tipe data variabel duration unsigned 
                                //long

void setup() {
  Serial.begin(9600);           //set baudrate serial 9600 bps
  pinMode(pin, INPUT);          //set mode pin pada pin 7 Arduino Board 
                                //sebagai input
}

void loop() {
  duration = pulseInLong(pin, HIGH);   //ambil nilai yang diperoleh dari 
                                   //fungsi pulseIn dengan tipe 
                                   //pulsa HIGH dan simpan di variabel 
                                   //duration
  Serial.println(duration);        //tampilkan isi variabel duration 
                                   //ke serial
}

Contoh Program dan Peringatan
Fungsi ini tergantung pada fungsi micros() sehingga tidak dapat digunakan apabila tanpa menggunakan interupsi

Terjemahan dan edit dari https://www.arduino.cc/reference/en/language/functions/advanced-io/pulseinlong/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST

Function pulseIn() pada Arduino Programming Language

Monday, March 1st, 2021

Deskripsi

Fungsi untuk membaca pulsa HIGH atau LOW pada pin. Contoh untuk nilai HIGH akan menunggu pulsa dari LOW ke HIGH, start timing dan menunggu untuk kembali ke LOW untuk stop timing. Nilai yang diperoleh di sini adalah lebar pulsa dalam microsecond atau nilai nol apabila tidak diperoleh pulsa hingga time out

Fungsi ini akan menampilkan error untuk pulsa yang lebih lebar. Hanya akan bekerja dalam nilai 10uS hingga 3 menit.

Syntax

pulseIn(pin, value)

pulseIn(pin, value, timeout)

Parameters

pin: Nomor pin Arduino Board di mana pulsa akan dibaca. Tipe data yang diijinkan int

value: tipe pulsa yang dibaca, HIGH atau LOW. Tipe data yang diijinkan int

timeout(optional): nilai dalam microsecond untuk menunggu pulsa dimulai, default dalam satu detik. Tipe data yang diijinkan unsigned long

Returns:

Lebar pulsa dalam microsecond atau nol apabila tidak ada pulsa hingga timeout. Tipe data yang diijinkan unsigned long

Contoh Program

Menampilkan durasi timing pada pin 7

int pin = 7;                    //nomor pin Arduino Board yang digunakan
unsigned long duration;         //tipe data variabel duration unsigned 
                                //long

void setup() {
  Serial.begin(9600);           //set baudrate serial 9600 bps
  pinMode(pin, INPUT);          //set mode pin pada pin 7 Arduino Board 
                                //sebagai input
}

void loop() {
  duration = pulseIn(pin, HIGH);   //ambil nilai yang diperoleh dari 
                                   //fungsi pulseIn dengan tipe 
                                   //pulsa HIGH dan simpan di variabel 
                                   //duration
  Serial.println(duration);        //tampilkan isi variabel duration 
                                   //ke serial
}

Terjemahan dan edit dari

https://www.arduino.cc/reference/en/language/functions/advanced-io/pulsein/

DELTA ELECTRONIC
Paulus Andi Nalwan, ST

Function noTone() pada Arduino Programming Language

Saturday, February 27th, 2021

Deksripsi

Merupakan fungsi untuk menghentikan fungsi tone(). Fungsi ini tidak akan membawa efek apapun apabila tidak ada tone yang dibangkitkan sebelumnya

Syntax

noTone(pin)

Parameters

pin: pin Arduino Board di mana tone dimatikan

Returns

Tidak ada return

Catatan dan Peringatan

Apabila ingin membangkitkan tone di pin yang lain maka terlebih dahulu dipanggil fungsi noTone() di pin yang sama sebelum memanggil lagi fungsi tone() di pin yang lain

Terjemahan dan edit dari https://www.arduino.cc/reference/en/language/functions/advanced-io/notone/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST

Function tone() pada Arduino Programming Language

Saturday, February 27th, 2021

Deskripsi

Merupakan fungsi untuk membangkitkan gelombang kotak dengan frekwensi tertentu (duty cycle 50%) di pin Arduino Board. Durasi untuk gelombang kotak ini juga dapat ditentukan atau juga dibuat kontinyu sampai adanya fungsi noTone(). Pin ini dapat dihubungkan ke buzzer atau speaker untuk menghasilkan suara dengan frekwensi tersebut.

Hanya ada satu signal tone yang dapat dibangkitkan dalam satu waktu. Apabila ada fungsi tone() lagi di pin yang berbeda, maka fungsi itu akan diabaikan, namun apabila ada fungsi tone() lagi di pin yang sama, maka fungsi ini akan mengupdate frekwensi yang dibangkitkan pada pin tersebut.

Tone yang dihasilkan dengan frekwensi tertentu oleh Arduino Board

Penggunaan fungsi tone() akan mempengaruhi PWM output pada pin 3 dan 11. Dan tone yang dihasilkan tidak dapat dibawah 31 Hz.

Syntax

tone(pin, frequency)

tone(pin, frequency, duration)

Parameters

pin: pin Arduino yang dibangkitkan frekwensi tone nya

frequency: frekwensi tone yang dihasilkan dengan tipe data unsigned int

duration: durasi tone dalam milisecond dengan tipe data unsigned long

Returns

Tidak ada return

Catatan dan Peringatan

Apabila ingin dibangkitkan frekwensi tone lagi di pin yang lain, maka terlebih dahulu harus dipanggil fungsi noTone() di pin di mana frekwensi tone dibangkitkan untuk menon aktifkan frekwensi tone

Terjemahan dan edit dari https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST

Function analogWriteResolution() pada Arduino Programming Language

Wednesday, February 24th, 2021

Deskripsi

Fungsi ini digunakan untuk mengatur resolusi dari fungsi analogWrite() di mana pada kondisi standard adalah 8 bit (nilai dari 0 – 255).  Namun untuk beberapa Arduino Board ini ada beberapa perbedaan

Arduino Due:

  • Terdapat 12 pin dengan 8 bit PWM pada kondisi standardnya. Resolusi ini dapat diubah menjadi 12 bit
  • Terdapat 2 pin DAC (Digital to Analog Converter)

Dengan mengubah resolusi menjadi 12 maka pada saat digunakan fungsi analogWrite() akan terdapat nilai mulai dari 0 – 4095 pada DAC atau terdapat signal PWM yang lebih halus.

Arduino Zero:

  • Terdapat 10 pin dengan 8 bit PWM pada kondisi standardnya. Resolusi ini dapat diubah menjadi 12 bit
  • Terdapat 1 pin DAC (Digital to Analog Converter)

Dengan mengubah resolusi menjadi 10 maka pada saat digunakan fungsi analogWrite() akan terdapat nilai mulai dari 0 – 4095 pada DAC

MKR Family:

  • Terdapat 4 pin dengan 8 bit PWM pada kondisi standardnya. Resolusi ini dapat diubah menjadi 12 bit
  • Terdapat 1 pin DAC (Digital to Analog Converter)

Dengan mengubah resolusi menjadi 12 maka pada saat digunakan fungsi analogWrite() akan terdapat nilai mulai dari 0 – 4095 pada PWM. Pengaturan 10 bit pada DAC akan mengakibatkan DAC memiliki range 0 – 1023.

Syntax

AnalogWriteResolution(bits)

Parameters

bits: merupakan resolusi dalam bits untuk nilai yang digunakan pada fungsi analogWrite()

Returns

Tidak ada return

Contoh Program

void setup() {
  // buka koneksi serial 9600 bps
  Serial.begin(9600);
  // ubah digital pin berikut menjadi Output
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  // baca input analog A0 dan dimap agar dapat digunakan 
  // untuk mengatur nilai PWM

  int sensorVal = analogRead(A0);
  Serial.print("Analog Read) : ");
  Serial.print(sensorVal);

  // the default PWM resolution
  analogWriteResolution(8);
  analogWrite(11, map(sensorVal, 0, 1023, 0, 255));
  Serial.print(" , 8-bit PWM value : ");
  Serial.print(map(sensorVal, 0, 1023, 0, 255));

  // Rubah PWM resolution ke 12 bits
  // resolusi 12 bit ini hanya berlaku pada Arduino Due

  analogWriteResolution(12);
  analogWrite(12, map(sensorVal, 0, 1023, 0, 4095));
  Serial.print(" , 12-bit PWM value : ");
  Serial.print(map(sensorVal, 0, 1023, 0, 4095));

  // Ubah resolusi PWM menjadi 4 bits
  analogWriteResolution(4);
  analogWrite(13, map(sensorVal, 0, 1023, 0, 15));
  Serial.print(", 4-bit PWM value : ");
  Serial.println(map(sensorVal, 0, 1023, 0, 15));

  delay(5);
}

Catatan dan Peringatan

Apabila anda mengatur fungsi analogWriteResolution() dengan nilai di luar kemampuan Arduino Board yang digunakan maka Arduino akan mengabaikan bit-bit ekstranya. Sebagai contoh pada fungsi analogWriteResolution(16) yang digunakan pada Arduino Due yang hanya memiliki 12 bit DAC, maka 4 bit ekstranya akan diabaikan.

Apabila anda mengatur fungsi analogWriteResolution() dengan nilai di bawah kemampuan Arduino Board maka bit-bit yang hilang akan diisi dengan nilai 0 atau logika 0. Contoh pada eksekusi fungsi analogWriteResolution(8) di DAC 12 bit, maka Arduino Board akan menambahkan 4 bit logika 0 agar tetap diperoleh 12 bit output.

Terjemahan dan edit dari https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogwriteresolution/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST

Function analogReadResolution() pada Arduino Programming Language

Wednesday, February 24th, 2021

Deskripsi

Merupakan fungsi tambahan yang hanya dimiliki pada Arduino Zero, Due, MKR Family, Nano 33 (BLE dan IoT) dan Potenta yang digunakan untuk mengatur jumlah bit resolusi yang dibaca oleh perintah analogRead(). Pada kondisi standard resolusi ada adalah 10 bit dan dapat diubah menjadi 12 bit untuk Arduino Zero, Due, MKR Family, Nano 33 (BLE dan IoT) dan 16 bit untuk Potenta.

Syntax

analogReadResolution(bits)

Parameters

bits: menyatakan resolusi dalam bit dari nilai yang dibaca pada saat fungsi analogRead() dijalankan

Returns

Tidak ada returns

Contoh Program

Program dibawah ini menampilkan nilai ADC dari berbagai resolusi yang berbeda

void setup() {
  // aktifkan serial port dengan baudrate 9600 bps
  Serial.begin(9600);
}

void loop() {
  // baca analog input A0 dengan resolusi standard yaitu 10 bit
  // kirim ke serial port
  analogReadResolution(10);
  Serial.print("ADC 10-bit (default) : ");
  Serial.print(analogRead(A0));

  // ubah resolusi menjadi 12 bit dan baca A0
  analogReadResolution(12);
  Serial.print(", 12-bit : ");
  Serial.print(analogRead(A0));

  // ubah resolusi menjadi 16 bit dan baca A0
  analogReadResolution(16);
  Serial.print(", 16-bit : ");
  Serial.print(analogRead(A0));

  // ubah resolusi menjadi 8 bit dan baca A0
  analogReadResolution(8);
  Serial.print(", 8-bit : ");
  Serial.println(analogRead(A0));

  // tunda 100mS
  delay(100);
}

Catatan dan Peringatan

Apabila resolusi diatur lebih tinggi dari kemampuan Arduino Board yang digunakan maka nilai yang diperoleh akan ditambah dengan bit-bit bernilai 0. Contoh apabila digunakan pada Arduino UNO dengan kemampuan 10 bit namun analogReadResolution(12) yang digunakan maka nilai maksimum yang akan diperoleh adalah 0b0011 1111 1111.

Apabila resolusi diatur lebih rendah dari kemampuan Arduino Board maka bit yang selebihnya akan diabaikan nilainya

Dengan menggunakan resolusi 16 bit akan membuat program yang anda buat akan kompatibel bila suatu saat digunakan pada Arduino Board yang memiliki resolusi lebih tinggi tanpa merubah isi program

Terjemahan dan edit dari https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogreadresolution/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST

Function analogWrite() pada Arduino Programming Language

Wednesday, February 24th, 2021

Deskripsi

Menuliskan nilai analog pada pin PWM dapat digunakan untuk mengatur terang gelap LED ataupun kecepatan motor. Saat fungsi ini dijalankan maka signal berbentuk gelombang kotak akan dibangkitkan pada pin PWM Arduino Board dengan duty cycle tertentu. Signal ini akan terus muncul hingga perintah analogWrite() selanjutnya atau digitalRead() atau digitalWrite() pada pin yang sama dieksekusi lagi.

Berikut ini adalah tabel pin PWM vs PWM Frequency vs jenis Arduino Board

* Bukan hanya PWM saja melainkan pada bagian yang bertanda ini yaitu MKR Boards, MKR1000 Wifi, Zero, Nano 33 IOT akan membangkitkan output yang betul-betul analog saat analogWrite() dilakukan pada pin DAC0 (A0).

** Bukan hanya PWM saja melainkan pada bagian yang bertanda ini yaitu Arduino Due akan membangkitkan output yang betul-betul analog saat analogWrite() dilakukan pada pin DAC0 (A0) dan DAC1 (A1).

Anda tidak perlu menjalankan fungsi pinMode() karena pin tersebut akan otomatis berfungsi sebagai output. Fungsi ini juga tidak akan berpengaruh pada pin Analog input ataupun fungsi analogRead ()

PWM Output pada pin 3 Arduino Uno

Syntax

analogWrite(pin, value)

Parameters

pin: Nomor pin dari Arduino Board dengan tipe data int

value: Duty cycle dengan range 0 – 255 di mana 0 adalah OFF dan 255 adalah ON. Tipe data yang digunakan adalah int

Returns

Tidak ada returns

Contoh Program

Atur kecerahan LED berdasarkan nilai yang diperoleh dari potentiometer.

int ledPin = 9;      // LED terhubung pada digital pin 9
int analogPin = 3;   // potentiometer terhubung pada analog pin 3
int val = 0;         // variable untuk menyimpan hasil pembacaan 
                     // pin analog

void setup() {
  pinMode(ledPin, OUTPUT);  // atur  pin sebagai output
}

void loop() {
  val = analogRead(analogPin);  // baca pin analog dan simpan di 
                                // variabel val
  analogWrite(ledPin, val / 4); // Nilai yang dibaca dari analog 
                                // pin dengan range 0 - 1023
                                // dikonversi menjadi 0 - 255 
                                // dengan dibagi 4
}

Catatan dan Peringatan

Output PWM yang dibangkitkan pada pin 5 atau pin 6 mungkin saja dapat memiliki nilai yang lebih besar dari duty cycle yang diharapkan akibat adanya fungsi milis () atau delay() di mana menggunakan timer yang sama dengan output PWM. Hal ini dapat mengakibatkan pada saat nilai duty cycle 0 tidak membuat signal PWM betul-betul OFF pada pin 5 dan 6

Terjemahan dan edit dari https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST

Function analogReference() pada Arduino Programming Language

Tuesday, February 23rd, 2021

Deskripsi

Merupakan fungsi untuk mengatur tegangan referensi dari analog input dengan opsi-opsi sebagai berikut:

Arduino AVR Boards (Uno, Mega, Leonardo, etc.)

  • DEFAULT:  Tegangan 5V untuk Arduino Board dengan VCC 5V dan 3.3V untuk Arduino Board dengan VCC 3.3V
  • INTERNAL: Menggunakan tegangan referensi internal yaitu 1.1V untuk ATMega168 dan ATMega328P dan 2.56V untuk ATMega32U4 dan ATMega8 (tidak berlaku untuk Arduino Mega)
  • INTERNAL1V1: Tegangan referensi 1.1V dan hanya berlaku untuk Arduino Mega
  • INTERNAL2V56: Tegangan referensi 2.56V dan hanya berlaku untuk Arduino Mega
  • EXTERNAL: Tergantung tegangan yang terhubung pada VREF yaitu antara 0 – 5V

Arduino SAMD Boards (Zero, etc.)

  • AR_DEFAULT: Tegangan 3.3V sebagai tegangan referensi
  • AR_INTERNAL: Menggunakan tegangan referensi built in 2.23V
  • AR_INTERNAL1V0: Menggunakan tegangan referensi built in 1V
  • AR_INTERNAL1V65: Menggunakan tegangan referensi built in 1.65V
  • AR_INTERNAL2V23: Menggunakan tegangan referensi built in 2.23V
  • AR_EXTERNAL: Tergantung tegangan yang terhubung pada VREF

Arduino megaAVR Boards (Uno WiFi Rev2)

  • DEFAULT: Tegangan 0.55V sebagai tegangan referensi
  • INTERNAL: Tegangan 0.55V sebagai tegangan referensi
  • VDD: Vdd dari ATmega4809. 5V pada Uno WiFi Rev2
  • INTERNAL0V55: Tegangan 0.55V sebagai tegangan referensi
  • INTERNAL1V1: Tegangan 1.1V sebagai tegangan referensi
  • INTERNAL1V5: Tegangan 1.5V sebagai tegangan referensi
  • INTERNAL2V5: Tegangan 2.5V sebagai tegangan referensi
  • INTERNAL4V3: Tegangan 4.3V sebagai tegangan referensi
  • EXTERNAL: Tergantung tegangan yang terhubung pada VREF

Arduino SAM Boards (Due)

  • AR_DEFAULT: Tegangan referensi 3.3V. Hanya berlaku untuk Arduino Due

Arduino mbed-enabled Boards (hanya pada Nano 33 BLE ):

  • AR_VDD: tegangan referensi standard 3.3V
  • AR_INTERNAL: Tegangan referensi built in 0.6V
  • AR_INTERNAL1V2: Tegangan refernsi 1.2V (Tegangan refernsi 0.6V dengan penguatan 2x)
  • AR_INTERNAL2V4: Tegangan refernsi 2.4V (Tegangan refernsi 0.6V dengan penguatan 4x)

Syntax

analogReference(type)

Parameters

type: Parameter ini berupa opsi-opsi yang ada di deskripsi

Returns

Tidak ada return

Contoh Program

analogReference(INTERNAL);              //mengatur tegangan referensi 1.1V untuk ATMega328

Catatan dan Peringatan

Jangan menggunakan tegangan di luar 0 – 5V di pin AREF dan pastikan telah dijalankan instruksi analogReference(EXTERNAL) agar pin AREF dapat digunakan.

Terjemahan dan edit dari https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST

Function analogRead() pada Arduino Programming Language

Tuesday, February 23rd, 2021

Deskripsi

Merupakan fungsi untuk membaca tegangan dari pin analog Arduino Board. Arduino Board memiliki multichannel 10 bit ADC dengan tegangan antara 0 – 5V atau 0-3.3V untuk VCC = 3.3V. Sebagai contoh pada Arduino UNO dengan analog input 0 – 5V maka akan diperoleh resolusi sebesar 5V / 1024 = 4.9mV.  Untuk Arduino Board yang lain, terdapat perbedaan tegangan maksimum, pin yang digunakan maupun resolusinya. Hal ini dapat dilihat pada tabel dibawah ini.

** Resolusi standard dari analog input adalah 10 bit, namun dengan instruksi analogReadResolution() dapat diubah menjadi 12 bit

Range input maksimum dapat diatur dengan fungsi analogReference() dan resolusi dapat diubah dengan fungsi analogReadResolution(), namun hanya dapat dilakukan pada Arduino Zero, Due atau MKR Family Boards.

Untuk ATMega yang menjadi basis Arduino UNO, Nano, Mini dan Mega dibutuhkan 100uS untuk membaca analog input. Oleh karena itu dalam 1 detik dapat dilakukan 10.000x pembacaan.

Potensiometer terhubung pada pin analog 3

Syntax

analogRead(pin)

Parameters

pin: A0 – A5 untuk kebanyakan Arduino Board, A0 – A6 untuk MKR Boards dan A0 – A7 untuk Mini dan Nano dan A0 – A15 untuk Arduino Mega

Returns

Berupa data analog yang terbaca dari pin yaitu 0 – 1023 untuk 10 bit dan 0 – 4095 untuk 12 bit. Tipe data ini adalah int

Contoh Program

Program untuk membaca tegangan analog dan mengirimkan ke serial port

int analogPin = A3; // potentiometer terhubung pada pin analog 3 di bagian 
                    // tengah dan di kaki 1 ke VCC serta kaki 3 ke GND 
                    // (lihat gambar di atas)
int val = 0;  // variable untuk menyimpan nilai yang dibaca

void setup() {
  Serial.begin(9600);           //  inisial serial
}

void loop() {
  val = analogRead(analogPin);  // baca input pin
  Serial.println(val);          // kirim nilai ke serial port
}

Catatan dan Peringatan

Apabila analog input ini tidak terhubung dengan apapun maka nilai yang diperoleh akan tidak menentu atau acak

Terjemahan dan edit dari https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST

Function pinMode() pada Arduino Programming Language

Tuesday, February 23rd, 2021

Deskripsi

Merupakan fungsi untuk mengatur mode dari Digital I/O sebagai Output atau sebagai Input. Fungsi ini akan mempengaruhi register DDRXn pada Mikrokontroler AVR dan juga mempengaruhi kondisi internal pull up. Pada mode sebagai input, apabila PortX berlogika HIGH dan PUD juga aktif maka MOSFET akan aktif dan menghubungkan internal pull up ke Digital I/O.

Pengaturan mode oleh Register DDRXn

Syntax

pinMode(pin, mode)

Parameters

pin : Nomor pin Arduino Board

mode: INPUT, OUTPUT atau INPUT_PULLUP

Returns

Tidak ada returns

Contoh Program

Program ini akan membuat digital pin 13 sebagai output dan toggle dari HIGH ke LOW setiap satu detik.

void setup() {
  pinMode(13, OUTPUT);    // set the digital pin 13 sebagai output
}

void loop() {
  digitalWrite(13, HIGH); // set digital pin 13 ON
  delay(1000);            // tunggu 1 detik
  digitalWrite(13, LOW);  // set digital pin 13 OFF
  delay(1000);            // tunggu 1 detik
}

Catatan dan peringatan
Semua analog I/O dapat juga berfungsi sebagai Digital I/O kecuali pada Arduino Nano, Pro Mini di A6 dan A7 yang hanya berfungsi sebagai analog I/O.
Terjemahan dan Edit dari https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST