suara bilangan hingga 999.999 dengan arduino

Modul suara arduino yang ada sudah memenuhi kebutuhan perancangan multimedia saat ini, seperti modul suara WTV020SD, mini TF MP3 player, MP3 shield dan lain-lain. Suara arduino bisa digunakan sebagai alarm peringatan, pengisi suara, suara latar, pemberitahuan dan keperluan lainnya.

Dalam perancangam suara dengan arduino kali ini diperuntukkan sebagai pembilang angka dan bisa diterapkan dalam berbagai proyek arduino. Angka/bilangan berasal dari pembacaan sensor dan dikirim ke modul suara.

Pada modul suara sudah disimpan dalam memorinya (microSD) berbagai macam kemungkinan suara angka dengan urutan tertentu. Arduino berfungsi sebagai pengatur suara angka yang akan diputar.

Suara pembilang arduino dimulai dengan kata pembuka contohnya “nomor antrian”, kemudian diikuti suara deret angka dan terakhir satuannya misalnya “di loket 1”.

Suara bilangan sampai 999.999 dengan komponen :

  1. arduino mega 2560
  2. MP3 DFPlayer
  3. Ampli modul LM386 (bila ada)

Bisa dikombinasikan sebagai pemberi suara :

  1. Mesin timbangan yang menginformasikan berat terukur
  2. Pemberi tahu bila jarak terlalu dekat pada sistem keamanan parkir
  3. Pengingat suhu dan kelembaban dengan sensor humidity
  4. Informasi kecepatan kendaraan kecepatan
  5. Suara antrian pada mesin antrian di perkantoran
  6. Pembilang total belanja
  7. dll

Video:

skema suara informasi arduino:

sketch/program:


#include <miniMP3.h>

#define belas 12 //belas.mp3
#define puluh 13 //puluh.mp3
#define seratus 14 //seratus.mp3
#define ratus 15 //ratus.mp3
#define seribu 16 //seribu.mp3
#define ribu 17 //ribu.mp3
#define koma 18 //Koma.mp3

#define berat 110 //berat.mp3
#define gram 111 //gram.mp3
#define kiloGram 112 //kilogram.mp3
#define jarak 120 //jarak.mp3
#define sentiMeter 121 //sentimeter.mp3
#define meter 122 //meter.mp3
#define suhu 130 //suhu.mp3
#define derajat 131 //derajat_celsius.mp3
#define ph 140 //P_H.mp3
#define kelembaban 150 //Kelembaban.mp3
#define persen 151 //Persen.mp3
#define kecepatan 160 //kecepatan.mp3
#define meterPerDetik 161 //meter_per_detik.mp3
#define kilometerPerJam 162 //kilometer_per_jam.mp3
#define nomorantrian 170 //nomor antrian.mp3
#define totalBelanja 180 //total belanja.mp3
#define rupiah 181 //rupiah.mp3

void setup() {
  mp3_set_serial (Serial1, 17);
  mp3_set_volume(30);

  uint32_t beratTimbangan = 0;
  
  mp3_play(berat);
  suaraBilangan(beratTimbangan);
  mp3_play(gram);
}

void loop() {

}

void suaraBilangan(uint32_t Bilangan)
{
  if (Bilangan < 12)
  {
    mp3_play(Bilangan);
  }
  else if (Bilangan < 20)
  {
    suaraBelasan(Bilangan);
  }
  else if (Bilangan < 100)
  {
    suaraPuluhan(Bilangan);
  }
  else if (Bilangan < 1000)
  {
    suaraRatusan(Bilangan);
  }
  else
  {
    suaraRibuan(Bilangan);
  }
}
void suaraBelasan(uint8_t Bilangan)
{
  mp3_play(Bilangan - 10);
  mp3_play(belas);
}
void suaraPuluhan(uint8_t Bilangan)
{
  uint8_t puluhan = Bilangan / 10;
  mp3_play(puluhan);
  mp3_play(puluh);

  uint8_t satuan = Bilangan % 10;
  if (satuan)
  {
    suaraBilangan(satuan);
  }
}
void suaraRatusan(uint16_t Bilangan)
{
  uint8_t ratusan = (uint8_t)(Bilangan / 100);
  if (ratusan == 1)
  {
    mp3_play(seratus);
  }
  else
  {
    mp3_play(ratusan);
    mp3_play(ratus);
  }
  byte puluhan = Bilangan % 100;
  if(puluhan)
  {
    suaraBilangan(puluhan);
  }
}
void suaraRibuan(uint32_t Bilangan)
{
  uint16_t ribuan = Bilangan / 1000;
  if (ribuan == 1)
  {
    mp3_play(seribu);
  }
  else
  {
    suaraBilangan(ribuan);
    mp3_play(ribu);
  }
  uint16_t ratusan = Bilangan % 1000;
  if (ratusan)
  {
    suaraBilangan(ratusan);
  }
}

file pendukung:
Suara : Suara bilangan mp3
Library : miniMP3

14 thoughts on “suara bilangan hingga 999.999 dengan arduino

    1. sesuaikan saja (koding dari examples-nya)

      #include
      #include // atau

      SoftwareSerial mySerial(10, 11); // RX, TX

      //
      void setup () {
      Serial.begin (9600);
      mySerial.begin (9600);
      mp3_set_serial (mySerial); //set softwareSerial for DFPlayer-mini mp3 module
      mp3_set_volume (15);
      }

  1. bisa tapi apakah library miniMP3 harus dihapus? (diganti dgn DFPlayer_Mini_Mp3)
    itu sudah bunyi, tapi hanya bunyi 0 (nol), lainnya nggak bunyi

    cuma baca : uint32_t beratTimbangan = 0;

    1. gunakan EEPROM
      #include "EEPROM.h"
      *simpan nomor antrian terakhir di EEPROM
      EEPROM.write(0,nomorAntrian);
      *jika lampu mati data nomor antrian akan tetap tersimpan di EEPROM
      *ketika dihidupkan kembali, ambil nomor antrian dari EEPROM
      nomorAntrian = EEPROM.read(0);

Leave a Reply

Your email address will not be published. Required fields are marked *