Kategori: Automasi rumah, Litar mikropengawal
Bilangan pandangan: 17351
Komen pada artikel: 0

Kawalan Jauh Mikrokontroler: IR jauh, Arduino, ESP8266, 433 MHz

 

Isu alat kawalan jauh atau jauh peralatan elektrik selalu dan akan relevan, tidak kira sama ada terdapat alat automasi dalam sistem atau tidak. Untuk organisasi kawalan jarak jauh, tidak kira samada sama ada mikropengawal, semuanya bergantung pada fungsi yang diperlukan untuk peranti yang diurus. Dalam artikel ini, anda akan mempelajari maklumat umum tentang cara mengawal mikropengawal jauh dari jauh.

Kawalan jauh pengawal mikro

Spesies

Terdapat dua jenis utama komunikasi jarak jauh:


Berwayar. Apabila kawalan penggerak terletak dalam satu bilik (atau tidak bilik) dijalankan dari panel kawalan atau dari pos butang yang terletak di tempat lain. Dalam kes ini, sambungan wayar elektrik bagi litar kawalan dan penggerak (relay, contactors, termasuk mekanisme, seperti motor atau sistem, sebagai contoh, pencahayaan) disediakan.


Wayarles. Dalam penjelmaan ini, tiada sambungan elektrik kawalan dan litar eksekutif diperlukan. Dalam litar tanpa wayar, terdapat dua peranti: pemancar atau alat kawalan jauh (RC) dan penerima, yang merupakan sebahagian daripada litar terkawal. Kawalan tanpa wayar, pada gilirannya, adalah biasa dalam dua versi:

  • Dengan isyarat optik. Sistem sedemikian ada di setiap rumah, jadi anda mengawal operasi TV, penghawa dingin dan perkakas rumah yang lain.

  • Dengan isyarat radio. Terdapat beberapa pilihan: Bluetooth, ZigBee, Wi-Fi, penerima pemancar 433 MHz dan variasi lain mengenai subjek ini.

Perlu diingat bahawa dengan cara teknikal moden anda boleh mengawal mikrokontroler, baik dari alat kawalan jauh dan melalui Internet pada rangkaian tempatan atau dengan akses dari mana saja di dunia.



IR remote

Kami memulakan pertimbangan kami dengan versi paling mudah dan paling klasik. Kawalan peranti dengan memancarkan kod dari urutan berkelip LED IR ke penerima optik yang dipasang pada peranti. Perlu diingat bahawa spektrum inframerah tidak dapat dilihat oleh mata manusia, tetapi kebanyakan kamera foto dan video melihatnya.

Oleh kerana kebanyakan kamera melihat inframerah, anda boleh menyemak kebolehgunaan kawalan jauh. Untuk melakukan ini, cukup arahkan kawalan jauh supaya pemancar melihat kamera dan tekan butang. Biasanya, cahaya putih dengan warna ungu kelihatan di skrin.

Kawalan ini mempunyai kelemahan yang jelas - anda mesti menunjuk jauh ke arah penerima. Dan jika bateri di alat kawalan jauh habis, maka anda juga harus menunjuk, kerana operasi semakin kurang dan kurang.

Kelebihan adalah kesederhanaan, pemeliharaan yang tinggi, baik pemancar dan penerima. Anda boleh mendapatkan butiran dengan membongkar alat kawalan jauh dan televisyen untuk menggunakannya dalam projek anda sendiri.

Sensor biasa adalah seperti berikut. Oleh kerana isyarat optik diterima, adalah perlu untuk mengecualikan pencetus dari sumber cahaya luaran, seperti matahari, lampu lampu, dan lain-lain. Ia juga perlu diperhatikan bahawa isyarat inframerah diterima terutamanya pada kekerapan 38 kHz.

Sensor IR

Berikut adalah spesifikasi salah satu daripada sensor IR:

  • kekerapan pembawa: 38 kHz;

  • bekalan voltan: 2.7 - 5.5 V;

  • penggunaan semasa: 50 μA.

Dan rajah sambungannya:

Rajah sambungan sensor IR

Kawalan jauh boleh digunakan oleh sesiapa sahaja yang mempunyai prinsip operasi yang sama, kawalan jauh dari:

  • TV

  • Pemain DVD

  • perakam rakaman radio;

  • dari alat pencahayaan moden, seperti candelier pintar dan jalur LED dan banyak lagi.

Panel kawalan

Berikut adalah contoh menggunakan sensor sedemikian dengan Arduino

Contoh Sensor IR Arduino

Dalam usaha untuk mikrokontroler, dalam kes Arduin kami, untuk memahami isyarat dari sensor, anda perlu menggunakan perpustakaan IRremote.h. Sebagai contoh cara membaca isyarat dari sensor, berikut adalah kod untuk mengenalinya dengan membaca port siri mikrokontroler dari Arduino IDE:

#include "IRremote.h" // sambungkan pustaka untuk bekerja dengan isyarat IR.

IRrecv irrecv (2); / / / menunjukkan output yang penerima disambungkan

keputusan decode_results;

void setup () {

Serial.begin (9600); // tetapkan kelajuan port COM

irrecv.enableIRIn (); // mulakan penerimaan tetamu

}

kekosongan gelung () {

jika (irrecv.decode (& hasil)) {// jika data itu datang

Serial.println (results.value, HEX); // data cetak

irrecv.resume (); / // menerima arahan berikut

  }

}

Hasilnya, apabila anda menyalakan arduino, dan mula "bersinar" ke penerima dengan kawalan jauh, kami akan melihat gambar berikut dalam monitor port siri:

Pemantau pelabuhan bersiri

Ini adalah kod yang menghantar butang dalam bentuk heksadesimal. Oleh itu, anda boleh mengetahui butang yang mana pada kawalan jauh yang menghantar kod, jadi tidak ada keperluan khusus untuk kawalan jauh yang digunakan, kerana anda boleh mengenali dan mengaitkan apa-apa. Dengan cara ini, ini adalah idea untuk projek kawalan jauh sejagat yang terlatih, seperti yang dijual sebelum ini. Tetapi kini di zaman Internet, jumlah teknologi yang dikawal dengan cara ini semakin berkurangan setiap tahun.

Dan dengan kod ini, anda boleh mengenali isyarat dan menguruskan beban:

#include "IRremote.h"

IRrecv irrecv (2); / / / menunjukkan output yang penerima disambungkan

keputusan decode_results;

void setup () {

irrecv.enableIRIn (); // mulakan penerimaan tetamu

}

kekosongan gelung () {

jika (irrecv.decode (& hasil)) {// jika data itu datang

suis (results.value) {

kes 0xFFA857:

digitalWrite (13, TINGGI);

pecah;

kes 0xFFE01F:

digitalWrite (13, LOW);

pecah;

    }   

irrecv.resume (); / // menerima arahan berikut

  }

}

Perkara utama dalam kod itu ialah pengiktirafan melalui fungsi Suis, kadang-kadang dipanggil "sakelar". Ia adalah analog jika cabang itu, tetapi mempunyai bentuk yang lebih indah untuk persepsi. Kes - ini adalah pilihan, "jika kod sedemikian tiba, maka ..." Kod mengawal 13 pin bagi isyarat tertentu. Biarkan saya mengingatkan anda bahawa LED terbina dalam pada papan ARDUINO disambungkan ke pin 13, iaitu. pengarang kod terkawal LED.

Anda boleh mengawal apa-apa menggunakan pin digital yang tinggi atau rendah melalui transistor kuasa (yang mana kita diliputi dalam dua artikel sebelum ini di sini dan di sini) dengan beban semasa langsung, atau melalui triac dan pemandu untuknya dengan beban semasa langsung, anda juga boleh menggunakan relay dan contactors, pada umumnya, medan keseluruhan untuk imaginasi.


Sambutan dan penghantaran isyarat radio

Bagi kegunaan mikrokontroler, pemancar dengan frekuensi operasi 433 MHz atau 315 MHz adalah perkara biasa, mungkin terdapat frekuensi lain, bergantung pada papan tertentu, tetapi ini adalah yang paling biasa. Sistem ini terdiri daripada dua nod - penerima dan pemancar, yang logik.

Sambutan dan penghantaran isyarat radio

Dalam gambar, pemancar ditunjukkan di sebelah kanan atas, dan penerima di bahagian bawah kiri. Nama mereka untuk carian: Modul radio 433MHz, MX-05V / XD-RF-5V (penerima dan pemancar).

Pinout, seperti yang sering berlaku dalam modul, dicat di papan, seperti pemancar:

Pemancar radio

Penerima tidak begitu jelas, kerana Data di papan litar bercetak ditulis lebih dari dua pin, sebenarnya salah satunya tidak digunakan.

Penerima radio

Sebagai contoh, kami memberikan gambarajah dan kod untuk menghidupkan LED daripada satu papan Arduino yang disambungkan ke papan yang sama, tanpa wayar. Penerima dan pemancar disambung dengan cara yang sama kepada kedua-dua papan:

Penerima dan pemancar di papan

Peranti

Modul

Pin Arduino

Penerima

Vcc

GND

DATA

+ 5V

GND

2

Pemancar

Vcc

GND

DATA

+ 5V

GND

2 

Seterusnya, anda perlu menyambung perpustakaan RCswitch.h ke Arduino IDE

Untuk memulakan, kami menulis program pemancar:

#include

RCSwitch mySwitch = RCSwitch(); / / buat objek untuk bekerja dengan front-end

void setup () {

    mySwitch.membolehkan penghantaran(2); // memberitahu program yang menyambungkan saluran maklumat disambungkan ke

}

kekosongan gelung () {

mySwitch.send (B0100,4);

kelewatan (1000);

mySwitch.send (B1000, 4);

    kelewatan (1000);

} 

Pemancar boleh menghantar kod perduaan, tetapi nilainya boleh ditulis dalam bentuk perpuluhan.

mySwitch.send (B0100,4);

dan

mySwitch.send (B1000, 4);

ini adalah arahan pemindahan, mySwitch adalah nama pemancar yang kami nyatakan pada permulaan kod, dan menghantar ialah arahan pemindahan. Argumen-argumen untuk fungsi ini adalah:

Nama pemancar.send (nilai, saiz paket denyut yang dihantar ke udara);

B1000 - simbol B - bermaksud binari, ia boleh ditulis sebagai nombor 8, iaitu. dalam notasi perpuluhan. Pilihan lain ialah menulis "1000" sebagai rentetan (dalam tanda petikan).

Seterusnya, kami menulis kod untuk penerima (ia masuk ke papan yang mana penerima dihubungkan):

#include

RCSwitch mySwitch = RCSwitch ();

void setup () {

pinMode (3, OUTPUT);

mySwitch.enableReceive (0);

}

kekosongan gelung () {

jika (mySwitch.available ()) {

int value = mySwitch.getReceivedValue ();

jika (nilai == B1000)

digitalWrite (3, TINGGI);

lain jika (nilai == B0100)

digitalWrite (3, LOW);

mySwitch.resetAvailable ();

    }

}

Di sini kita mengaku bahawa nilai yang diterima disimpan dalam pembolehubah Nilai dalam rentetan mySwitch.getReceivedValue (). Dan hakikat bahawa penerima disambungkan ke pin 2 diterangkan di sini oleh mySwiitch.enableReceive (0).

Selebihnya kod adalah elementer, jika isyarat 0100 diterima, maka nombor pin 3 ditetapkan ke tinggi (log Unit), dan jika 1000, kemudian ke bawah (log Zero).

Menarik:

Dalam talian mySwitch.enableTransmit (0) kita memberitahu program bahawa penerima disambungkan ke pin ke-2 dan mod terima dihidupkan. Perhatian yang paling perhatian adalah perdebatan kaedah ini bukan nombor pin "2", tetapi "0", hakikatnya, membolehkan kaedah Transmit (nombor) tidak menerima nombor pin tetapi nombor mengganggu, tetapi di atmega328, yang diletakkan Arduino Uno, nano, promini dan beberapa yang lain, pada pin kedua (PortD pin PD2) menggantungkan interupsi dengan angka sifar. Anda dapat melihat ini di pinout Atmega yang digunakan untuk papan Arduino, nombor pin ditulis dalam kotak merah jambu.

Atmega pinout

Kaedah pemancar dan penerimaan adalah sangat mudah dan murah, sepasang penerima dan pemancar berharga kira-kira $ 1.5 pada masa penulisan.


Wi-Fi, Adruino dan ESP8266

Untuk memulakan, ESP8266 adalah mikrokontroler dengan sokongan perkakasan untuk Wi-Fi, Ia dijual sebagai cip berasingan, dan disolder ke papan, seperti arduino. Ia mempunyai kernel 32-bit, ia diprogramkan melalui port bersiri (UART).

Papan biasanya mempunyai 2 atau lebih pin GPIO percuma dan selalu ada pin untuk firmware, ini mesti dilakukan melalui USB ke penyesuai siri. Diuruskan oleh pasukan AT, senarai lengkap arahan boleh didapati di laman web rasmi ESP8266 dan pada github.

ESP8266

Terdapat pilihan yang lebih menarik, papan NodeMCU, mereka mempunyai kemampuan untuk flash melalui USB, kerana Penukar USB-UART sudah ada di papan, biasanya dibuat pada cip CP2102. MCU Node adalah firmware, seperti sistem pengendalian, projek berdasarkan bahasa skrip Lua.

Lembaga NodeMCU

Perisian firmware boleh melaksanakan skrip Lua, sama ada dengan menerimanya pada port bersiri atau dengan menghasilkan semula algoritma yang disimpan dalam memori Flash.

Dengan cara ini, ia mempunyai sistem failnya sendiri, walaupun tiada direktori di dalamnya, i.e. hanya fail tanpa folder. Dalam memori, skrip tidak boleh disimpan, tetapi juga pelbagai data, iaitu. Lembaga boleh menyimpan maklumat yang dicatatkan, sebagai contoh, dari sensor.

Lembaga berfungsi dengan antara muka:

  • 1-Wire;

  • I2C;

  • SPI

  • UART.

Ia mempunyai pelbagai fungsi:

  • modul penyulitan;

  • penjadual tugas;

  • jam masa sebenar;

  • protokol penyegerakan jam melalui SNTP Internet;

  • pemasa;

  • Saluran ADC (satu);

  • memainkan fail audio;

  • menjana output output isyarat PWM (sehingga 6);

  • menggunakan soket, terdapat sokongan untuk FatFS, iaitu anda boleh menyambungkan kad SD dan sebagainya.

ESP-12E

Dan di sini adalah senarai ringkas mengenai apa yang lembaga dapat berfungsi dengan:

  • pecutan ADXL345;

  • Magnetometer HMC5883L

  • gyroscopes L3G4200D;

  • sensor suhu dan kelembapan AM2320, DHT11, DHT21, DHT22, DHT33, DHT44;

  • sensor suhu, kelembapan, tekanan atmosfer BME280;

  • suhu dan tekanan tekanan atmosfer BMP085;

  • banyak memaparkan kerja di I2C, bas SPI. Dengan keupayaan untuk bekerja dengan fon yang berbeza;

  • TFT memaparkan ILI9163, ILI9341, PCF8833, SEPS225, SSD1331, SSD1351, ST7735;

  • LED pintar dan pengawal LED - WS2812, tm1829, WS2801, WS2812.

Selain menggunakan bahasa Lua, anda boleh memprogram papan dari bawah Arduino IDE.

ESP8266 boleh digunakan sebagai peranti mandiri atau sebagai modul untuk komunikasi tanpa wayar dengan Arduino.

Modul untuk komunikasi tanpa wayar dengan Arduino

Pertimbangan semua fungsi dan ciri lembaga ini akan mengambil satu siri keseluruhan artikel.

Jadi papan ini adalah pilihan hebat untuk kawalan jauh melalui Wi-Fi. Skop ini sangat besar, sebagai contoh, untuk menggunakan telefon pintar sebagai panel kawalan untuk mesin yang dikendalikan oleh radio atau quadrocopter sementara, kawalan pencahayaan jauh, sehingga mengatur rangkaian untuk seluruh rumah dan menguruskan setiap outlet, lampu, dan lain-lain. jika hanya ada pin secukupnya.

Cara paling mudah untuk bekerja dengan mikrokontroler adalah menggunakan papan ESP8266 tunggal. Di bawah adalah gambarajah soket wi-fi yang mudah.

Skim outlet wifi yang paling mudah

Untuk memasang litar ini, anda memerlukan modul geganti, atau relay konvensional yang disambungkan ke pin melalui transistor. Pertama anda memerlukan program untuk telefon pintar RoboRemoFree ,. Di dalamnya, anda akan mengkonfigurasi sambungan ke ESP dan membuat antara muka untuk mengawal saluran keluar. Untuk menerangkan cara menggunakannya, anda perlu menulis artikel berasingan, jadi mari biarkan bahan ini untuk sekarang.

Di ESP kita memuat firmware berikut, melalui program ESPlorer (program untuk bekerja dengan lembaga)

- Wifi AP Settup

wifi.setmode (wifi.STATIONAP)

cfg = {}

cfg.ssid = "ESPTEST"

cfg.pwd = "1234567890"

wifi.ap.config (cfg)

--Pet mod Pin

my_pin_nummber = 1

--gpio.mode (my_pin_nummber, gpio.OUTPUT)

gpio.mode (my_pin_nummber, gpio.OPENDRAIN)

--Buat Pelayan

sv = net.createServer (net.TCP)

fungsi penerima (sck, data)

jika string.sub (data, 0, 1) == "1" maka

--gpio.write (my_pin_nummber, gpio.HIGH)

gpio.write (my_pin_nummber, gpio.LOW)

lain

jika string.sub (data, 0, 1) == "0" maka

--gpio.write (my_pin_nummber, gpio.LOW)

gpio.write (my_pin_nummber, gpio.HIGH)

akhir

akhir

cetak (data)

akhir

jika sv kemudian

sv: dengar (333, fungsi (conn)

conn: on ("receive", receiver)

sambung: kirim ("Hello!")

akhir)

akhir

--Buat Pelayan HTTP

http = net.createServer (net.TCP)

fungsi menerima_http (sck, data)

cetak (data)

permintaan tempatan = string.match (data, "([^ \ r, \ n] *) [\ r, \ n]", 1)

jika permintaan == 'GET / pada HTTP / 1.1' kemudian

--gpio.write (my_pin_nummber, gpio.HIGH)

gpio.write (my_pin_nummber, gpio.LOW)

akhir

jika permintaan == 'GET / off HTTP / 1.1' kemudian

--gpio.write (my_pin_nummber, gpio.LOW)

gpio.write (my_pin_nummber, gpio.HIGH)

akhir

sck: on ("dihantar", fungsi (sck) sck: tutup () collectgarbage () akhir)

respons lokal = "HTTP / 1.0 200 OK \ r \ nServer: NodeMCU pada ESP8266 \ r \ nContent-Type: text / html \ r \ n \ r \ n" ..

" NodeMCU pada ESP8266 </ title> <body>" ..</p> <p style="text-align: justify;"> "<h1> NodeMCU pada ESP8266 </ h1>" ..</p> <p style="text-align: justify;"> "<hr>" ..</p> <p style="text-align: justify;"> "<a href=\"on\"> Aktifkan </a> <a href=\"off\"> Dimatikan </a>" ..</p> <p style="text-align: justify;"> "</ body> </ html>"</p> <p style="text-align: justify;"> sck: send (respon)</p> <p style="text-align: justify;">akhir</p> <p style="text-align: justify;">jika http kemudian</p> <p style="text-align: justify;"> http: listen (80, function (conn)</p> <p style="text-align: justify;"> conn: on ("receive", receive_http)</p> <p style="text-align: justify;"> akhir)</p> <p style="text-align: justify;">akhir</p> <p style="text-align: justify;">cetak ("Bermula.")</p> </code></p> <p style="text-align: justify;">Sekarang anda boleh mengawal program sama ada dari program Roboremo, atau melalui mana-mana pelayar web, untuk ini anda perlu menaip alamat IP papan dalam bar alamat dalam mod wi-fi, ia <em>192.168.4.1.</em></p> <p style="text-align: justify;">Terdapat coretan dalam kod itu:</p> <p><code> </code></p> <p style="text-align: justify;"><code> "<html> <title> NodeMCU pada ESP8266 </ title> <body>" ..</code></p> <p><code> </code></p> <p style="text-align: justify;"><code> "<h1> NodeMCU pada ESP8266 </ h1>" ..</code></p> <p><code> </code></p> <p style="text-align: justify;"><code> "<hr>" ..</code></p> <p><code> </code></p> <p style="text-align: justify;"><code> "<a href=\"on\"> Aktifkan </a> <a href=\"off\"> Dimatikan </a>" ..</code></p> <p><code> </code></p> <p style="text-align: justify;"><code> "</ body> </ html>"</code></p> <p style="text-align: justify;">Ini adalah jenis respons yang dikeluarkan kepada penyemak imbas semasa mengakses papan. Ia mengandungi kod HTML, iaitu. Halaman web yang paling mudah, sama seperti yang anda baca artikel ini.</p> <div style="text-align: center;"><img style="border: 0px; margin: 3px;" title="Halaman dalam pelayar telefon pintar yang menjalankan OS Android" src="https://i.electricianexp.com/uploads/posts/2018-04/1524152428_15.png" alt="Halaman dalam pelayar telefon pintar yang menjalankan OS Android"></div> <p style="text-align: justify;">Berikut adalah halaman ini, dilancarkan dalam pelayar telefon pintar yang menjalankan OS Android. Di atas bukan arahan yang lengkap, kerana ia akan mengambil sejumlah besar, jika anda berminat dengan maklumat ini - tulis ulasan dan kami pasti akan melakukan semakan dan menulis artikel mengenai bekerja dengannya.</p> </div> </font><font size="2" face="arial"> <div border="0" width="100%"> <div> <div align="center"> </div> </div> </div> </font> <p><font face="Verdana"> <center> <noindex> </noindex></center></font></p> <p><font face="Verdana"> </font></p> </font><font size="2" face="arial"><font face="Verdana"><script type='text/javascript' src='https://i.electricianexp.com/jbox/aftertext-1.js'></script> <p> </font> <font face="Verdana" color="#0B0B0B"> <p> <b>Lihat juga di i.electricianexp.com</b></font><font size="2" face="arial"><b><font color="#0B0B0B" face="Verdana">: </font> </b> <font face="Verdana" color="#0B0B0B"><li><a href="https://i.electricianexp.com/ms/main/praktika/1334-podklyuchenie-i-programmirovanie-arduino-dlya-nachinayuschih.html">Menyambung dan pengaturcaraan Arduino untuk pemula</a></li><li><a href="https://i.electricianexp.com/ms/microcontroller/1503-sposoby-chteniya-i-upravleniya-portami-vvoda-vyvoda-arduino.html">Kaedah untuk membaca dan mengurus port Arduino I / O</a></li><li><a href="https://i.electricianexp.com/ms/obzor/1526-chto-takoe-displei-nextion-i-kak-s-nimi-rabotat.html">Apakah paparan Nextion dan bagaimana untuk bekerja dengan mereka?</a></li><li><a href="https://i.electricianexp.com/ms/microcontroller/1469-mikrokontrollery-programmiruemye-na-javascript.html">Pemrogram mikrokontroler dalam JavaScript: mana yang boleh dipilih, ciri ...</a></li><li><a href="https://i.electricianexp.com/ms/main/praktika/1333-ustroystvo-mikrokontrollerov-avr.html">Jenis dan perkiraan mikrokontroler AVR</a></li></font></font></font><font size="2" face="Verdana"> <br> <p> </font></div> <div class="newsbody" bgcolor="#FDFDFD">  </div> </div> </div> </div> <div id="dle-ajax-comments"></div> <script language="javascript" type="text/javascript"> <!-- $(function(){ $('#dle-comments-form').submit(function() { doAddComments(); return false; }); }); function reload () { var rndval = new Date().getTime(); document.getElementById('dle-captcha').innerHTML = '<img src="/engine/modules/antibot.php?rndval=' + rndval + '" border="0" width="120" height="50" alt="" /><br /><a onclick="reload(); return false;" href="#"></a>'; }; //--> </script><script type='text/javascript' src='https://i.electricianexp.com/jbox/after-text-all.js'></script></article> </div> <div class="sidebar col05"> <section> <div class="heading">Bahagian tapak</div> <div class="content"> <ul class="list"> <li><a href="https://i.electricianexp.com/ms/main/praktika/">Elektronik Praktikal</a></li> <li><a href="https://i.electricianexp.com/ms/sockets/">Soket dan suis</a></li> <li><a href="https://i.electricianexp.com/ms/protection/">Automata dan RCD</a></li> <li><a href="https://i.electricianexp.com/ms/economy/">Penjimatan tenaga</a></li> <li><a href="https://i.electricianexp.com/ms/motors/">Motor elektrik dan aplikasi mereka</a></li> <li><a href="https://i.electricianexp.com/ms/electromontazh/">Kerja elektrik</a></li> <li><a href="https://i.electricianexp.com/ms/main/voprosy/">Isu kontroversi</a></li> <li><a href="https://i.electricianexp.com/ms/main/master/">Perkongsian pengalaman</a></li> <li><a href="https://i.electricianexp.com/ms/device/">Bagaimana ia berfungsi?</a></li> <li><a href="https://i.electricianexp.com/ms/main/praktika/">Elektronik Praktikal</a></li> <li><a href="https://i.electricianexp.com/ms/microcontroller/">Litar mikropengawal</a></li> <li><a href="https://i.electricianexp.com/ms/main/energy/">Bekalan kuasa autonomi</a></li> <li> <a href="https://i.electricianexp.com/ms/avto/">Juruelektrik automatik</a></li> <li><a href="https://i.electricianexp.com/ms/tehbez/">Langkah berjaga-jaga keselamatan</a></li> <li><a href="https://i.electricianexp.com/ms/main/proelectrikov/">Mengenai juruelektrik</a></li> <li><a href="https://i.electricianexp.com/ms/avtorsite.html">CONTACT US</a></li> </ul> </div> </section> <section> <div class="heading">Nota</div> <div class="content"> <script type='text/javascript' src='https://i.electricianexp.com/jbox/sidebar.js'></script> </div> </section> </div> </div> </div> </section> <!--------------Footer---------------> <footer> <div class="zerogrid"> <div class="row"> <section class="col-1-3"> <div class="heading">Maklumbalas</div> <div class="content"> <p><a href="https://i.electricianexp.com/ms/avtorsite.html">CONTACT US</a></p><p><a href="https://i.electricianexp.com/ms/sitemap_end.html">Peta tapak</a></p> </div> </section></div> </div> </footer> <div id="copyright"><script type='text/javascript' src='https://i.electricianexp.com/jbox/mail.js'></script></div> <div id="slidebox"> <a class="close"></a> <div class="alignleft"> <p>Kami mengesyorkan membaca:</p> <p> <a href="https://i.electricianexp.com/ms/tehbez/1592-kakoe-napryazhenie-opasno-dlya-zhizni-cheloveka.html">Stres apa yang berbahaya kepada kehidupan manusia</a> </p> </div> </div><script type='text/javascript' src='https://i.electricianexp.com/jbox/incbox.js'></script></body></html>