
Merupakan konfigurasi diagram alir (node-based visual programming) untuk mengontrol pergerakan motor servo bolak-balik (kanan-kiri) berbasis board Arduino Nano.
Berikut adalah rincian komponen dan cara kerja sistemnya:
Komponen Utama (Nodes)
Square Wave Generator (frequency: 0.5): Menghasilkan pulsa detak (clock) periodik setiap 2 detik sekali untuk memicu perubahan posisi.
Boolean Value Switch: Digunakan sebagai sakelar penentu arah gerakan.
1 / TRUE: Arah Naik (Up / Kanan)
0 / FALSE: Arah Turun (Down / Kiri)
Gerbang Logika (logicAnd & logicNot): Mengarahkan sinyal pulsa dari Square Wave menuju pin UP atau DOWN pada Counter, tergantung status Boolean Switch.
Counter Up/Down: Pusat pengendali sudut pergerakan.
Step (Langkah): 45 derajat.
Rentang Nilai: 0 (Min) hingga 180 (Max).
Reset: Kembali ke angka 0 saat Push Button ditekan.
Output / Output Indicators:
Servo Motor (Pin 13): Bergerak secara bertahap sesuai keluaran nilai derajat dari Counter.
Gauge Display & Value Monitor (Serial Log): Menampilkan posisi sudut derajat saat ini secara visual dan teks angka.
Light Bulb: Menerima input nilai derajat yang sama dari Counter.
Cara Kerja Rangkaian
Sinyal Detak: Square Wave Generator memancarkan pulsa berulang setiap 2 detik.
Logika Arah (Kanan / Naik): Jika sakelar Boolean bernilai TRUE, gerbang logicAnd atas akan aktif. Pulsa clock dikirim ke pin UP Counter, menambahkan sudut motor servo sebesar +45° setiap interval hingga mencapai batas maksimal 180°.
Logika Arah (Kiri / Turun): Jika sakelar Boolean bernilai FALSE, nilai tersebut dibalikkan oleh logicNot sehingga gerbang logicAnd bawah menjadi aktif. Pulsa clock dikirim ke pin DOWN Counter, mengalihkan gerakan untuk mengurangi sudut sebesar -45° hingga mencapai 0°.
Reset Manual: Menekan Push Button akan langsung mengembalikan posisi counter dan servo ke titik 0°.
{
"name": "servo-kanan-kiri",
"board": "nano",
"nodes": [
{
"id": "bulb-1778401238621",
"type": "bulb",
"position": {
"x": 793.4871240943944,
"y": 230.7222598872701
},
"data": {
"value": 0,
"pin": "0",
"minimized": false
},
"measured": {
"width": 160,
"height": 148
},
"selected": false,
"dragging": false
},
{
"id": "servo-1784567524990",
"type": "servo",
"position": {
"x": 797.9147949457339,
"y": 8.17791248217543
},
"data": {
"value": 0,
"pin": "13",
"lastWritten": 0
},
"measured": {
"width": 160,
"height": 161
},
"selected": false,
"dragging": false
},
{
"id": "counter-1784567531786",
"type": "counter",
"position": {
"x": 354.92924395947404,
"y": -73.39885845496778
},
"data": {
"value": 0,
"step": 45,
"resetVal": 0,
"minVal": 0,
"maxVal": 180,
"pin": "0",
"lastUp": false,
"lastDown": false,
"lastReset": false
},
"measured": {
"width": 334,
"height": 304
},
"selected": false,
"dragging": false
},
{
"id": "squareWave-1784567550529",
"type": "squareWave",
"position": {
"x": -425.64838515651775,
"y": -12.457182776514372
},
"data": {
"value": 0,
"pin": "0",
"frequency": 0.5
},
"measured": {
"width": 183,
"height": 176
},
"selected": false,
"dragging": false
},
{
"id": "logicAnd-1784567627934",
"type": "logicAnd",
"position": {
"x": -11.619241423633056,
"y": -28.704655494110973
},
"data": {
"value": false,
"pin": "0"
},
"measured": {
"width": 160,
"height": 165
},
"selected": false,
"dragging": false
},
{
"id": "boolean-1784567643246",
"type": "boolean",
"position": {
"x": -417.43963426748667,
"y": 227.54175827355598
},
"data": {
"value": 0,
"pin": "0",
"disabled": false
},
"measured": {
"width": 176,
"height": 119
},
"selected": true,
"dragging": false
},
{
"id": "logicAnd-1784567652206",
"type": "logicAnd",
"position": {
"x": 105.27692553771392,
"y": 207.7272045536731
},
"data": {
"value": false,
"pin": "0"
},
"measured": {
"width": 160,
"height": 165
},
"selected": false,
"dragging": false
},
{
"id": "logicNot-1784567711706",
"type": "logicNot",
"position": {
"x": -127.89356269449381,
"y": 290.07635623358306
},
"data": {
"value": true,
"pin": "0"
},
"measured": {
"width": 160,
"height": 129
},
"selected": false,
"dragging": false
},
{
"id": "serialLog-1784567735471",
"type": "serialLog",
"position": {
"x": 795.5940367584082,
"y": 425.53595044866324
},
"data": {
"value": 0,
"pin": "0"
},
"measured": {
"width": 160,
"height": 125
},
"selected": false,
"dragging": false
},
{
"id": "pushButton-1784567745606",
"type": "pushButton",
"position": {
"x": 47.5874445360199,
"y": 432.3747508273558
},
"data": {
"value": 0,
"pin": "0"
},
"measured": {
"width": 160,
"height": 164
},
"selected": false,
"dragging": false
},
{
"id": "gauge-1784568026042",
"type": "gauge",
"position": {
"x": 364.2780833655803,
"y": 296.0967045414188
},
"data": {
"value": 0,
"pin": "0",
"max": 180
},
"measured": {
"width": 326,
"height": 294
},
"selected": false
}
],
"edges": [
{
"source": "counter-1784567531786",
"sourceHandle": "default",
"target": "servo-1784567524990",
"targetHandle": "default",
"id": "xy-edge__counter-1784567531786default-servo-1784567524990default"
},
{
"source": "counter-1784567531786",
"sourceHandle": "default",
"target": "bulb-1778401238621",
"targetHandle": "default",
"id": "xy-edge__counter-1784567531786default-bulb-1778401238621default"
},
{
"source": "squareWave-1784567550529",
"sourceHandle": "default",
"target": "logicAnd-1784567627934",
"targetHandle": "in1",
"id": "xy-edge__squareWave-1784567550529default-logicAnd-1784567627934in1"
},
{
"source": "boolean-1784567643246",
"sourceHandle": "default",
"target": "logicAnd-1784567627934",
"targetHandle": "in2",
"id": "xy-edge__boolean-1784567643246default-logicAnd-1784567627934in2"
},
{
"source": "squareWave-1784567550529",
"sourceHandle": "default",
"target": "logicAnd-1784567652206",
"targetHandle": "in1",
"id": "xy-edge__squareWave-1784567550529default-logicAnd-1784567652206in1"
},
{
"source": "logicAnd-1784567627934",
"sourceHandle": "default",
"target": "counter-1784567531786",
"targetHandle": "up",
"id": "xy-edge__logicAnd-1784567627934default-counter-1784567531786up"
},
{
"source": "logicAnd-1784567652206",
"sourceHandle": "default",
"target": "counter-1784567531786",
"targetHandle": "down",
"id": "xy-edge__logicAnd-1784567652206default-counter-1784567531786down"
},
{
"source": "boolean-1784567643246",
"sourceHandle": "default",
"target": "logicNot-1784567711706",
"targetHandle": "in1",
"id": "xy-edge__boolean-1784567643246default-logicNot-1784567711706in1"
},
{
"source": "logicNot-1784567711706",
"sourceHandle": "default",
"target": "logicAnd-1784567652206",
"targetHandle": "in2",
"id": "xy-edge__logicNot-1784567711706default-logicAnd-1784567652206in2"
},
{
"source": "counter-1784567531786",
"sourceHandle": "default",
"target": "serialLog-1784567735471",
"targetHandle": "default",
"id": "xy-edge__counter-1784567531786default-serialLog-1784567735471default"
},
{
"source": "pushButton-1784567745606",
"sourceHandle": "default",
"target": "counter-1784567531786",
"targetHandle": "reset",
"id": "xy-edge__pushButton-1784567745606default-counter-1784567531786reset"
},
{
"source": "counter-1784567531786",
"sourceHandle": "default",
"target": "gauge-1784568026042",
"targetHandle": "default",
"id": "xy-edge__counter-1784567531786default-gauge-1784568026042default"
}
]
}
Buka Arduflow IDE sekarang dan implementasikan logika program di atas tanpa ribet!