FLOW. CONNECT. INNOVATE.
← KEMBALI KE DAFTAR MATERI
KONTROL SERVO

Kendalikan servo dari trafict light

Mendeskripsikan alur pemrograman berbasis blok (node-based visual programming) untuk pengontrolan Traffic Light (Lampu Lalu Lintas) dan Motor Servo berbasis mikrokontroler ESP32.

Struktur ini mengatur sekuens nyala lampu indikator sekaligus pergerakan posisi servo berdasarkan pewaktuan (timer).

Komponen Utama Node

Cara Kerja Sistem

  1. Inisialisasi Pewaktuan: squareWave memicu timer untuk berjalan hingga mencapai target 5 detik.

  2. Pengujian Kondisi (compare): Ketika timer mencapai nilai >= 5000, sinyal pemicu dikirimkan ke logika perantara dan indikator visual (bulb).

  3. Peralihan & Jeda (delay & ifElse): Blok delay menahan sinyal selama 2,5 detik sebelum meneruskannya ke percabangan ifElse. Sinyal ini menentukan output angka (0, 90, atau 180) yang mewakili derajat posisi.

  4. Eksekusi Servo & LED:

    • Output angka dikirim ke blok servo pada Pin 13 untuk menggerakkan lengan servo ke sudut target (misalnya palang pintu/rambu).

    • Nilai sudut yang bernilai 90° atau 180° diverifikasi ulang melalui blok pembanding lanjutan untuk mengaktifkan/dematikan barisan pin LED digital (digitalWrite Pin 32 & 33) serta indikator traffic light.

  5. Reset Otomatis: Setelah rangkaian delay dan pulse selesai, sinyal dialirkan kembali ke pin reset pada timer untuk mengulang siklus secara kontinu.

 

ARDUFLOW CODE SNIPPET
{
  "name": "trafic_light-servo",
  "board": "esp32",
  "nodes": [
    {
      "id": "timer-1781659366219",
      "type": "timer",
      "position": {
        "x": 400.79358324187234,
        "y": 47.10116825945781
      },
      "data": {
        "value": 5000,
        "pin": "0",
        "currentTime": 5000,
        "lastTick": 1788011502326,
        "targetSec": 5
      },
      "measured": {
        "width": 318,
        "height": 201
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "squareWave-1781659369656",
      "type": "squareWave",
      "position": {
        "x": 142.68194490462213,
        "y": -132.71548123412416
      },
      "data": {
        "value": 1,
        "pin": "0",
        "frequency": 0.5
      },
      "measured": {
        "width": 183,
        "height": 176
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "bulb-1781659381499",
      "type": "bulb",
      "position": {
        "x": 453.1639893894662,
        "y": 298.2491778833472
      },
      "data": {
        "value": true,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 148
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "serialLog-1781659396395",
      "type": "serialLog",
      "position": {
        "x": 1108.3282369506196,
        "y": 92.40442053303434
      },
      "data": {
        "value": 5000,
        "pin": "0",
        "lastMessage": "SYSTEM:READY"
      },
      "measured": {
        "width": 178,
        "height": 125
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "compare-1781659417695",
      "type": "compare",
      "position": {
        "x": 164.81321778260963,
        "y": 254.58426762084775
      },
      "data": {
        "value": true,
        "pin": "0",
        "mode": ">="
      },
      "measured": {
        "width": 178,
        "height": 165
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "number-1781659439140",
      "type": "number",
      "position": {
        "x": 122.52676503357529,
        "y": 74.48293530484668
      },
      "data": {
        "value": 5000,
        "pin": "0"
      },
      "measured": {
        "width": 210,
        "height": 121
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "delay-1781659625594",
      "type": "delay",
      "position": {
        "x": 756.94351592982,
        "y": 71.25802647892922
      },
      "data": {
        "value": false,
        "pin": "0",
        "pendingValue": true,
        "delayMs": 2500,
        "targetTime": 1788011503688
      },
      "measured": {
        "width": 210,
        "height": 154
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "bulb-1781659730081",
      "type": "bulb",
      "position": {
        "x": 401.40314519833277,
        "y": -126.77276885855349
      },
      "data": {
        "value": 1,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 148
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "digitalWrite-1781660526857",
      "type": "digitalWrite",
      "position": {
        "x": 927.8544079530694,
        "y": -146.24549590070615
      },
      "data": {
        "value": true,
        "pin": "13",
        "lastStateKey": "13-true-false",
        "disabled": false
      },
      "measured": {
        "width": 167,
        "height": 164
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "pulse-1781660538709",
      "type": "pulse",
      "position": {
        "x": 603.7562297647195,
        "y": -131.9110161054237
      },
      "data": {
        "value": false,
        "duration": 100,
        "pin": "0",
        "lastTrigger": true,
        "endTime": 1788011502302
      },
      "measured": {
        "width": 209,
        "height": 154
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "bulb-1781661230879",
      "type": "bulb",
      "position": {
        "x": 756.7091740307612,
        "y": 297.6294971757705
      },
      "data": {
        "value": false,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 148
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "delay-1781661247124",
      "type": "delay",
      "position": {
        "x": 450.30658655180287,
        "y": 674.307074461502
      },
      "data": {
        "value": false,
        "pin": "0",
        "pendingValue": true,
        "delayMs": 2500,
        "targetTime": 1788011503688
      },
      "measured": {
        "width": 210,
        "height": 154
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "ifElse-1781662093854",
      "type": "ifElse",
      "position": {
        "x": 1057.7871252089844,
        "y": 898.7952574397362
      },
      "data": {
        "value": 1,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 201
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "number-1781662102764",
      "type": "number",
      "position": {
        "x": 440.16064038407967,
        "y": 842.6949853852078
      },
      "data": {
        "value": 0,
        "pin": "0"
      },
      "measured": {
        "width": 210,
        "height": 121
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "bulb-1781662143439",
      "type": "bulb",
      "position": {
        "x": 1242.4885743640518,
        "y": 294.30220715393034
      },
      "data": {
        "value": false,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 148
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "number-1781662190795",
      "type": "number",
      "position": {
        "x": 745.2221128805983,
        "y": 1017.240449473853
      },
      "data": {
        "value": 1,
        "pin": "0"
      },
      "measured": {
        "width": 210,
        "height": 121
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "pulse-1781662349090",
      "type": "pulse",
      "position": {
        "x": 1351.609909933688,
        "y": 974.1776936756711
      },
      "data": {
        "value": false,
        "duration": 9400,
        "pin": "0",
        "lastTrigger": true,
        "endTime": 1788011402531
      },
      "measured": {
        "width": 209,
        "height": 154
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "digitalWrite-1781662913413",
      "type": "digitalWrite",
      "position": {
        "x": 430.52581396149117,
        "y": 478.29415244373916
      },
      "data": {
        "value": true,
        "pin": "14",
        "lastStateKey": "14-true-undefined",
        "inverted": false
      },
      "measured": {
        "width": 167,
        "height": 164
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "digitalWrite-1781662928524",
      "type": "digitalWrite",
      "position": {
        "x": 739.1136528428194,
        "y": 522.5269708130623
      },
      "data": {
        "value": false,
        "pin": "12",
        "lastStateKey": "12-false-undefined",
        "inverted": false
      },
      "measured": {
        "width": 167,
        "height": 164
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "digitalWrite-1781662936304",
      "type": "digitalWrite",
      "position": {
        "x": 1149.8438736986711,
        "y": 469.7912223154065
      },
      "data": {
        "value": false,
        "pin": "15",
        "lastStateKey": "15-false-undefined",
        "inverted": false
      },
      "measured": {
        "width": 167,
        "height": 164
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "serialLog-1781663113471",
      "type": "serialLog",
      "position": {
        "x": 1344.4656899960337,
        "y": 111.79440456746156
      },
      "data": {
        "value": false,
        "pin": "0",
        "lastMessage": "SYSTEM:READY"
      },
      "measured": {
        "width": 184,
        "height": 125
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "ifElse-1784705349118",
      "type": "ifElse",
      "position": {
        "x": 1651.8417276085795,
        "y": 310.7426428514923
      },
      "data": {
        "value": 0,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 201
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "number-1784705357973",
      "type": "number",
      "position": {
        "x": 1421.9384460190909,
        "y": 407.207876569662
      },
      "data": {
        "value": 0,
        "pin": "0"
      },
      "measured": {
        "width": 210,
        "height": 121
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "serialLog-1784705390044",
      "type": "serialLog",
      "position": {
        "x": 1956.593917402489,
        "y": 557.8502770547436
      },
      "data": {
        "value": 0,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 125
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "ifElse-1784705441259",
      "type": "ifElse",
      "position": {
        "x": 1315.1771700981856,
        "y": 659.4964869039359
      },
      "data": {
        "value": 0,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 201
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "number-1784705480876",
      "type": "number",
      "position": {
        "x": 949.1713709136864,
        "y": 705.8568162431794
      },
      "data": {
        "value": 90,
        "pin": "0"
      },
      "measured": {
        "width": 210,
        "height": 121
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "serialLog-1784705512251",
      "type": "serialLog",
      "position": {
        "x": 1536.5939174024888,
        "y": 767.9278722816642
      },
      "data": {
        "value": 0,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 125
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "ifElse-1784705549371",
      "type": "ifElse",
      "position": {
        "x": 2017.1771700981853,
        "y": 1107.4964869039359
      },
      "data": {
        "value": 0,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 201
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "number-1784705552179",
      "type": "number",
      "position": {
        "x": 1706.81282001228,
        "y": 1170.0180172501769
      },
      "data": {
        "value": 180,
        "pin": "0"
      },
      "measured": {
        "width": 210,
        "height": 121
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "serialLog-1784705677987",
      "type": "serialLog",
      "position": {
        "x": 2351.7360000206654,
        "y": 1003.8091759604488
      },
      "data": {
        "value": 0,
        "pin": "0"
      },
      "measured": {
        "width": 160,
        "height": 125
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "servo-1784706006110",
      "type": "servo",
      "position": {
        "x": 2768.455287033006,
        "y": 765.865738191349
      },
      "data": {
        "value": 0,
        "pin": "13",
        "lastWritten": 0
      },
      "measured": {
        "width": 160,
        "height": 161
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "digitalWrite-1784706351603",
      "type": "digitalWrite",
      "position": {
        "x": 2625.081033449037,
        "y": 223.0959972561246
      },
      "data": {
        "value": false,
        "pin": "32",
        "lastStateKey": "32-false-undefined"
      },
      "measured": {
        "width": 167,
        "height": 164
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "compare-1784706412713",
      "type": "compare",
      "position": {
        "x": 2117.9469067380696,
        "y": 150.0221389986857
      },
      "data": {
        "value": false,
        "pin": "0",
        "mode": "=="
      },
      "measured": {
        "width": 178,
        "height": 165
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "number-1784706432501",
      "type": "number",
      "position": {
        "x": 1677.761783222458,
        "y": 146.7049277357581
      },
      "data": {
        "value": 90,
        "pin": "0"
      },
      "measured": {
        "width": 210,
        "height": 121
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "compare-1784706471481",
      "type": "compare",
      "position": {
        "x": 2443.170210117846,
        "y": 471.07079108863917
      },
      "data": {
        "value": false,
        "pin": "0",
        "mode": "=="
      },
      "measured": {
        "width": 178,
        "height": 165
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "number-1784706479913",
      "type": "number",
      "position": {
        "x": 2053.315176462904,
        "y": 448.9768832054883
      },
      "data": {
        "value": 180,
        "pin": "0"
      },
      "measured": {
        "width": 210,
        "height": 121
      },
      "selected": false,
      "dragging": false
    },
    {
      "id": "digitalWrite-1784706496201",
      "type": "digitalWrite",
      "position": {
        "x": 2731.0357075374154,
        "y": 461.180244839709
      },
      "data": {
        "value": false,
        "pin": "33",
        "lastStateKey": "33-false-undefined"
      },
      "measured": {
        "width": 167,
        "height": 164
      },
      "selected": false,
      "dragging": false
    }
  ],
  "edges": [
    {
      "source": "squareWave-1781659369656",
      "target": "timer-1781659366219",
      "targetHandle": "run",
      "id": "xy-edge__squareWave-1781659369656-timer-1781659366219run"
    },
    {
      "source": "timer-1781659366219",
      "target": "serialLog-1781659396395",
      "id": "xy-edge__timer-1781659366219-serialLog-1781659396395"
    },
    {
      "source": "number-1781659439140",
      "target": "compare-1781659417695",
      "targetHandle": "b",
      "id": "xy-edge__number-1781659439140-compare-1781659417695b"
    },
    {
      "source": "timer-1781659366219",
      "target": "compare-1781659417695",
      "targetHandle": "a",
      "id": "xy-edge__timer-1781659366219-compare-1781659417695a"
    },
    {
      "source": "compare-1781659417695",
      "target": "delay-1781659625594",
      "id": "xy-edge__compare-1781659417695-delay-1781659625594"
    },
    {
      "source": "delay-1781659625594",
      "target": "timer-1781659366219",
      "targetHandle": "reset",
      "id": "xy-edge__delay-1781659625594-timer-1781659366219reset"
    },
    {
      "source": "squareWave-1781659369656",
      "target": "bulb-1781659730081",
      "id": "xy-edge__squareWave-1781659369656-bulb-1781659730081"
    },
    {
      "source": "squareWave-1781659369656",
      "target": "pulse-1781660538709",
      "id": "xy-edge__squareWave-1781659369656-pulse-1781660538709"
    },
    {
      "source": "compare-1781659417695",
      "target": "delay-1781661247124",
      "id": "xy-edge__compare-1781659417695-delay-1781661247124"
    },
    {
      "source": "delay-1781661247124",
      "target": "ifElse-1781662093854",
      "targetHandle": "condition",
      "id": "xy-edge__delay-1781661247124-ifElse-1781662093854condition"
    },
    {
      "source": "number-1781662190795",
      "target": "ifElse-1781662093854",
      "targetHandle": "falseVal",
      "id": "xy-edge__number-1781662190795-ifElse-1781662093854falseVal"
    },
    {
      "source": "pulse-1781662349090",
      "target": "bulb-1781662143439",
      "id": "xy-edge__pulse-1781662349090-bulb-1781662143439"
    },
    {
      "source": "number-1781662102764",
      "target": "ifElse-1781662093854",
      "targetHandle": "trueVal",
      "id": "xy-edge__number-1781662102764-ifElse-1781662093854trueVal"
    },
    {
      "source": "pulse-1781660538709",
      "target": "digitalWrite-1781660526857",
      "id": "xy-edge__pulse-1781660538709-digitalWrite-1781660526857"
    },
    {
      "source": "pulse-1781662349090",
      "target": "digitalWrite-1781662936304",
      "id": "xy-edge__pulse-1781662349090-digitalWrite-1781662936304"
    },
    {
      "source": "delay-1781661247124",
      "target": "bulb-1781661230879",
      "id": "xy-edge__delay-1781661247124-bulb-1781661230879"
    },
    {
      "source": "delay-1781661247124",
      "target": "digitalWrite-1781662928524",
      "id": "xy-edge__delay-1781661247124-digitalWrite-1781662928524"
    },
    {
      "source": "delay-1781661247124",
      "target": "serialLog-1781663113471",
      "id": "xy-edge__delay-1781661247124-serialLog-1781663113471"
    },
    {
      "source": "compare-1781659417695",
      "target": "digitalWrite-1781662913413",
      "id": "xy-edge__compare-1781659417695-digitalWrite-1781662913413"
    },
    {
      "source": "compare-1781659417695",
      "target": "bulb-1781659381499",
      "id": "xy-edge__compare-1781659417695-bulb-1781659381499"
    },
    {
      "source": "ifElse-1781662093854",
      "target": "pulse-1781662349090",
      "id": "xy-edge__ifElse-1781662093854-pulse-1781662349090"
    },
    {
      "source": "ifElse-1784705349118",
      "sourceHandle": "default",
      "target": "serialLog-1784705390044",
      "targetHandle": "default",
      "id": "xy-edge__ifElse-1784705349118default-serialLog-1784705390044default"
    },
    {
      "source": "ifElse-1784705441259",
      "sourceHandle": "default",
      "target": "serialLog-1784705512251",
      "targetHandle": "default",
      "id": "xy-edge__ifElse-1784705441259default-serialLog-1784705512251default"
    },
    {
      "source": "number-1784705552179",
      "sourceHandle": "default",
      "target": "ifElse-1784705549371",
      "targetHandle": "trueVal",
      "id": "xy-edge__number-1784705552179default-ifElse-1784705549371trueVal"
    },
    {
      "source": "ifElse-1784705549371",
      "sourceHandle": "default",
      "target": "serialLog-1784705677987",
      "targetHandle": "default",
      "id": "xy-edge__ifElse-1784705549371default-serialLog-1784705677987default"
    },
    {
      "source": "number-1784705357973",
      "sourceHandle": "default",
      "target": "ifElse-1784705349118",
      "targetHandle": "trueVal",
      "id": "xy-edge__number-1784705357973default-ifElse-1784705349118trueVal"
    },
    {
      "source": "number-1784705480876",
      "sourceHandle": "default",
      "target": "ifElse-1784705441259",
      "targetHandle": "trueVal",
      "id": "xy-edge__number-1784705480876default-ifElse-1784705441259trueVal"
    },
    {
      "source": "ifElse-1784705441259",
      "sourceHandle": "default",
      "target": "ifElse-1784705349118",
      "targetHandle": "falseVal",
      "id": "xy-edge__ifElse-1784705441259default-ifElse-1784705349118falseVal"
    },
    {
      "source": "ifElse-1784705549371",
      "sourceHandle": "default",
      "target": "ifElse-1784705441259",
      "targetHandle": "falseVal",
      "id": "xy-edge__ifElse-1784705549371default-ifElse-1784705441259falseVal"
    },
    {
      "source": "ifElse-1784705349118",
      "sourceHandle": "default",
      "target": "ifElse-1784705549371",
      "targetHandle": "falseVal",
      "id": "xy-edge__ifElse-1784705349118default-ifElse-1784705549371falseVal"
    },
    {
      "source": "ifElse-1784705349118",
      "sourceHandle": "default",
      "target": "servo-1784706006110",
      "targetHandle": "default",
      "id": "xy-edge__ifElse-1784705349118default-servo-1784706006110default"
    },
    {
      "source": "compare-1781659417695",
      "sourceHandle": "default",
      "target": "ifElse-1784705349118",
      "targetHandle": "condition",
      "id": "xy-edge__compare-1781659417695default-ifElse-1784705349118condition"
    },
    {
      "source": "delay-1781661247124",
      "sourceHandle": "default",
      "target": "ifElse-1784705441259",
      "targetHandle": "condition",
      "id": "xy-edge__delay-1781661247124default-ifElse-1784705441259condition"
    },
    {
      "source": "pulse-1781662349090",
      "sourceHandle": "default",
      "target": "ifElse-1784705549371",
      "targetHandle": "condition",
      "id": "xy-edge__pulse-1781662349090default-ifElse-1784705549371condition"
    },
    {
      "source": "compare-1784706412713",
      "sourceHandle": "default",
      "target": "digitalWrite-1784706351603",
      "targetHandle": "default",
      "id": "xy-edge__compare-1784706412713default-digitalWrite-1784706351603default"
    },
    {
      "source": "number-1784706432501",
      "sourceHandle": "default",
      "target": "compare-1784706412713",
      "targetHandle": "b",
      "id": "xy-edge__number-1784706432501default-compare-1784706412713b"
    },
    {
      "source": "ifElse-1784705349118",
      "sourceHandle": "default",
      "target": "compare-1784706412713",
      "targetHandle": "a",
      "id": "xy-edge__ifElse-1784705349118default-compare-1784706412713a"
    },
    {
      "source": "ifElse-1784705349118",
      "sourceHandle": "default",
      "target": "compare-1784706471481",
      "targetHandle": "a",
      "id": "xy-edge__ifElse-1784705349118default-compare-1784706471481a"
    },
    {
      "source": "number-1784706479913",
      "sourceHandle": "default",
      "target": "compare-1784706471481",
      "targetHandle": "b",
      "id": "xy-edge__number-1784706479913default-compare-1784706471481b"
    },
    {
      "source": "compare-1784706471481",
      "sourceHandle": "default",
      "target": "digitalWrite-1784706496201",
      "targetHandle": "default",
      "id": "xy-edge__compare-1784706471481default-digitalWrite-1784706496201default"
    }
  ]
}

SIAP MENCOBA MATERI INI?

Buka Arduflow IDE sekarang dan implementasikan logika program di atas tanpa ribet!