{"id":502,"date":"2021-03-21T16:44:18","date_gmt":"2021-03-21T16:44:18","guid":{"rendered":"https:\/\/starthardware.org\/en\/?p=502"},"modified":"2021-03-27T14:25:20","modified_gmt":"2021-03-27T14:25:20","slug":"raylfx-operation-site-with-arduino-and-flashing-blue-light","status":"publish","type":"post","link":"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/","title":{"rendered":"RaylFX \u2013 Operation Site with Arduino and flashing blue light"},"content":{"rendered":"\n<p>This module of the<a href=\"https:\/\/starthardware.org\/en\/raylfx-effects-for-model-railroads-and-model-making-with-arduino-nano\/\" target=\"_blank\" rel=\"noreferrer noopener\"> RaylFX system<\/a> controls an operation site. It includes four pairs of blue lights that can flash at different speeds, a 3-channel running light, e.g. for barriers, a strobe light, vehicle lighting (headlights, taillights) and accident scene lighting in the evening. This allows fire department and\/or police operations to be equipped with appropriate effects. This module also has a sound output via DFPlayer-Mini.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"sp-dsgvo sp-dsgvo-embedding-container sp-dsgvo-embedding-youtube \"><div class=\"sp-dsgvo-blocked-embedding-placeholder sp-dsgvo-blocked-embedding-placeholder-youtube\">  <div class=\"sp-dsgvo-blocked-embedding-placeholder-header\"><img decoding=\"async\" class=\"sp-dsgvo-blocked-embedding-placeholder-header-icon\" src=\"https:\/\/starthardware.org\/en\/wp-content\/plugins\/shapepress-dsgvo\/public\/images\/embeddings\/icon-youtube.svg\"\/>We need your consent to load the content of YouTube.<\/div>  <div class=\"sp-dsgvo-blocked-embedding-placeholder-body\"><p>If you click on this video we will play the video, load scripts on your device, store cookies and collect personal data. This enables [Google Ireland Limited, Irland] to track activities on the Internet and to display advertising in a target group-oriented manner. There is a data transfer to the USA, which does not have EU-compliant data protection. You will find further information <a target=\"_blank\" href=\"#\" class=\"sp-dsgvo-navigate-privacy-policy\">here<\/a>.<\/p>   <div class=\"sp-dsgvo-blocked-embedding-button-container\"> <a href=\"#\" class=\"sp-dsgvo-direct-enable-popup sp-dsgvo-blocked-embedding-button-enable\" data-slug=\"youtube\">Click here to enable this content.<\/a><\/div>  <\/div><\/div><div class=\"sp-dsgvo-hidden-embedding-content sp-dsgvo-hidden-embedding-content-youtube\" data-sp-dsgvo-embedding-slug=\"youtube\">Jmx0O2RpdiBjbGFzcz0mcXVvdDtudi1pZnJhbWUtZW1iZWQmcXVvdDsmZ3Q7Jmx0O2lmcmFtZSB0aXRsZT0mcXVvdDtSYWlsRlggRWluc2F0enN0ZWxsZSAmbmRhc2g7IEVmZmVrdGUgZiZ1dW1sO3IgTW9kZWxsYmFobiB1bmQgTW9kZWxsYmF1IG1pdCBBcmR1aW5vJnF1b3Q7IHdpZHRoPSZxdW90OzEyMDAmcXVvdDsgaGVpZ2h0PSZxdW90OzY3NSZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvdWhtUWtHUGJZMWs\/ZmVhdHVyZT1vZW1iZWQmcXVvdDsgZnJhbWVib3JkZXI9JnF1b3Q7MCZxdW90OyBhbGxvdz0mcXVvdDthY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlJnF1b3Q7IGFsbG93ZnVsbHNjcmVlbiZndDsmbHQ7L2lmcmFtZSZndDsmbHQ7L2RpdiZndDs=<\/div><\/div>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Wiring Diagram<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-traffic-light-arduino-nano-circuit-diagram-1024x448-1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"448\" src=\"https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-traffic-light-arduino-nano-circuit-diagram-1024x448-1.jpg\" alt=\"RaylFX traffic light module wiring diagram for model railroad\" class=\"wp-image-484\" srcset=\"https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-traffic-light-arduino-nano-circuit-diagram-1024x448-1.jpg 1024w, https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-traffic-light-arduino-nano-circuit-diagram-1024x448-1-300x131.jpg 300w, https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-traffic-light-arduino-nano-circuit-diagram-1024x448-1-768x336.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>The module is based on the Arduino Nano. Four pairs of blue lights are connected to pins 4, 5, 6, 7, 15 (A1), 16 (A2), 17 (A3), 19 (A5). Here the analog pins are used as digital pins. The 3-channel running light is connected to pins 10, 11, 12 and the strobe light to pin 9. At night the operation site is illuminated via pin 8. At the same time, a vehicle lighting also switches on at pins 13 and 14 (A0).<\/p>\n\n\n\n<p>Attention: The control signal of the <a href=\"https:\/\/starthardware.org\/en\/raylfx-effects-for-model-railroads-and-model-making-with-arduino-nano\/\" target=\"_blank\" rel=\"noreferrer noopener\">RaylFX control module<\/a> is applied to pin A4. It controls the time of day and is mandatory.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code Settings<\/h2>\n\n\n\n<p>Several settings can be made in the code. These are explained in more detail in the code section. They are basically the speeds of the running light and the blue lights.<\/p>\n\n\n\n<p>As with other modules with sound output, the DFPlayer Mini is also used here. It plays MP3 and WAV files from an SD card. The SD card must be formatted in the FAT16 or FAT32 file system. In addition, the files must be in the &#8220;01&#8221; folder and the file names must be sequentially named 001.mp3, 002.mp3, 003.mp3, and so on. As mentioned, WAV files may also be used: 001.mp3, 002.wav, 003.mp3 \u2026<\/p>\n\n\n\n<p>The number of MP3 files must be specified in the variable <em>mp3Count<\/em>. For this you can specify the playing time of the files via the variable <em>mp3Duration<\/em>. Via <em>mp3Likelihood <\/em>the frequency of sound triggering can be influenced.<\/p>\n\n\n\n<p>The operation site module uses the <em>DFRobotDFPlayerMini <\/em>library. This library must be installed first. For this go in the Arduino menu to Sketch>Include Library>Manage Libraries \u2026 and search for <em>DFRobotDFPlayerMini<\/em> in the search field. Install the current version of the <em>DFRobotDFPlayerMini<\/em> library from <em>DFRobot<\/em>.<\/p>\n\n\n\n<p>Further info about the DF-Player on this page: <a href=\"https:\/\/starthardware.org\/en\/dfplayer-mini-mp3-player-for-arduino\/\" target=\"_blank\" rel=\"noreferrer noopener\">DFPlayer Mini-MP3-Player for Arduino<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int runningLightTimeout = 500;            \/\/ running light speed (ms) e. g. as street barriers\nint flashingLightDelay = 1000;            \/\/ flashing light delay\nint volumeDFPlayer = 10;                  \/\/ volume of the DFPlayer (0 \u2013 30)\nint mp3Count = 2;                         \/\/ amount of MP3 files on the SD-card\nint mp3Duration&#091;] = {3, 14};              \/\/ duration of the MP3 files in seconds\nint mp3Likelihood = 10;                   \/\/ likelihood with which MP3s are played, 10 often, 100 rarely<\/code><\/pre>\n\n\n\n<p>When uploading you have to make sure that the correct board is selected in the Arduino menu. To do this, &#8220;ATmega328P (Old Bootlaoder)&#8221; must also be selected in the Processor subitem of the Tools menu.<\/p>\n\n\n\n<p>The following program code can be easily copied with the above mentioned changes and loaded onto the Arduino nano.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code for the RaylFX Operation Site Module<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*\n     Rayl-FX Operation Site Module\n     StartHardware.org\/en\n*\/\n\n#include \"SoftwareSerial.h\"              \/\/ required for the DFPlayer\n#include \"DFRobotDFPlayerMini.h\"         \/\/ required for the DFPlayer\n\n\/* ***** ***** Settings ***** ***** ***** *****  ***** ***** ***** *****  ***** ***** ***** ***** *\/\n\nint runningLightTimeout = 500;            \/\/ running light speed (ms) e. g. as street barriers\nint flashingLightDelay = 1000;            \/\/ flashing light delay\nint volumeDFPlayer = 10;                  \/\/ volume of the DFPlayer (0 \u2013 30)\nint mp3Count = 2;                         \/\/ amount of MP3 files on the SD-card\nint mp3Duration&#091;] = {3, 14};              \/\/ duration of the MP3 files in seconds\nint mp3Likelihood = 10;                   \/\/ likelihood with which MP3s are played, 10 often, 100 rarely\n\n\/* ***** ***** From here begins the program code, which does not need to be adjusted ***** ***** ***** ***** *\/\n\nint blueLightPins&#091;8] = {15, 16, 17, 19, 7, 6, 5, 4};  \/\/ pins for the flashing blue light\nint runningLightPins&#091;3] = {10, 11, 12};               \/\/ pins for the running lights\nint vehicleLightingPins&#091;2] = {13, 14};                \/\/ pins for vehicle lighting\nint flashingLightPin = 9;                             \/\/ pin for flashing light\nint lightingPin = 8;                                  \/\/ pin for operation site lighting\n\n\/* State Variables *\/\nint soundState = 0;                      \/\/ state of DFPlayer\n\nint soundRandom;                         \/\/ auxiliary variable for sound output\nint theSound;                            \/\/ auxiliary variable for sound output\nint soundPlaying = false;                \/\/ auxiliary variable for sound output\n\n\/* Memory Variables *\/\nint advertisingLed1 = 1;                 \/\/ stores the state of the advertising-LED 1\nint advertisingLed2 = 1;                 \/\/ stores the state of the advertising-LED 2\nint runningLightPosition = 0;            \/\/ stores the state of the running lights A\n\n\/* Timer Variables *\/\nlong runningLightTimer;\nint blueLightTimer&#091;4] = {800, 700, 650, 730};   \/\/ blue light flashing frequency\nlong soundTimer = 0;                     \/\/ timer of the DFPlayer\nlong soundTimeout = 0;                   \/\/ stores the playback time of the current MP3 file\n\n\/* Create Objects *\/\nSoftwareSerial mySoftwareSerial(3, 2);   \/\/ RX, TX for the DFPlayer\nDFRobotDFPlayerMini myDFPlayer;          \/\/ DFPlayer object\n\n\/* Variables from the control module to determine the time of day *\/\nboolean receive = false;\nboolean receiveStarted = false;\nint receiveTimeout = 10;\nlong receiveTimer = 0;\nint receivedTime = 0;\nint receivePulse = 0;\nint lastReceivePulse = 0;\nint receivePin = 18;\nint myTime = 0;\n\n#define PAYLOAD_SIZE 2                  \/\/ mandatory for communication with master-module\nint timeOfDay = 0;                      \/\/ stores timeOfDay of master-module (0 and 255)\nbyte nodePayload&#091;PAYLOAD_SIZE];         \/\/ temporarily stores data of master-module\n\nvoid setup() {\n  Serial.begin(115200);                     \/\/ starts the serial communication\n  mySoftwareSerial.begin(9600);             \/\/ starts the serial communication for the DFPlayer\n\n  pinMode(flashingLightPin, OUTPUT);            \/\/ pin for the flashing light\n  pinMode(lightingPin, OUTPUT);                 \/\/ pin for the operation site lighting\n\n  for (int i = 0; i &lt; 2; i++) {                 \/\/ for the number of vehicle lighting pins\n    pinMode(vehicleLightingPins&#091;i], OUTPUT);    \/\/ declare this pin as output\n    digitalWrite(vehicleLightingPins&#091;i], HIGH); \/\/ turn off the LED at this pin\n  }\n\n  for (int i = 0; i &lt; 8; i++) {                 \/\/ for the number of blue light pins\n    pinMode(blueLightPins&#091;i], OUTPUT);          \/\/ declare this pin as output\n    digitalWrite(blueLightPins&#091;i], HIGH);       \/\/ turn off the LED at this pin\n  }\n\n  for (int i = 0; i &lt; 3; i++) {                 \/\/ for the number of running light pins\n    pinMode(runningLightPins&#091;i], OUTPUT);       \/\/ declare this pin as output\n    digitalWrite(runningLightPins&#091;i], HIGH);    \/\/ turn off the LED at this pin\n  }\n\n  \/* DFPlayer Setup *\/\n  Serial.println(F(\"Initializing DFPlayer ... \"));\n  if (!myDFPlayer.begin(mySoftwareSerial)) {      \/\/ use softwareSerial to communicate with DFPlayer\n    Serial.println(F(\"Error: Check connection to DFPlayer and SD-Card\"));\n  }\n  Serial.println(F(\"DFPlayer Mini online.\"));\n  myDFPlayer.volume(volumeDFPlayer);              \/\/ volume is assigned\n\n}\n\nvoid loop() {\n  receiveFunction();                \/\/ execute instructions for reception\n  if (receiveStarted == false) {    \/\/ if no data is currently being received:\n    \n    if (myTime &gt; 22) {              \/\/ ***** late evening *****\n      runningLightOn();             \/\/ running light on\n      blueLightOn();                \/\/ blue light on\n      flashingLightOn();            \/\/ flashing light on\n      lightingOn();                 \/\/ lighting on\n      vehicleLightingOn();          \/\/ vehicle lighting on\n      soundOn();                    \/\/ sound On\n      \n    } else if (myTime &gt; 18) {       \/\/ ***** evening *****\n      runningLightOn();             \/\/ running light on\n      blueLightOn();                \/\/ blue light on\n      flashingLightOn();            \/\/ flashing light on\n      lightingOn();                 \/\/ lighting on\n      vehicleLightingOn();          \/\/ vehicle lighting on\n      \n    } else if (myTime &gt; 12) {       \/\/ ***** noon *****\n      runningLightOn();             \/\/ running light on\n      blueLightOn();                \/\/ blue light on\n      flashingLightOn();            \/\/ flashing light on\n      lightingOff();                \/\/ lighting off\n      vehicleLightingOff();         \/\/ vehicle lighting off\n      \n    } else if (myTime &gt; 9) {        \/\/ ***** forenoon *****\n      runningLightOn();             \/\/ running light on\n      blueLightOn();                \/\/ blue light on\n      flashingLightOn();            \/\/ flashing light on\n      lightingOff();                \/\/ lighting off\n      vehicleLightingOff();         \/\/ vehicle lighting off\n      \n    } else if (myTime &gt; 7) {        \/\/ ***** morning *****\n      runningLightOn();             \/\/ running light on\n      blueLightOn();                \/\/ blue light on\n      flashingLightOn();            \/\/ flashing light on\n      lightingOff();                \/\/ lighting off\n      vehicleLightingOff();         \/\/ vehicle lighting off\n      \n    } else {                        \/\/ ***** night *****\n      runningLightOn();             \/\/ running light on\n      blueLightOn();                \/\/ blue light on\n      flashingLightOn();            \/\/ flashing light on\n      lightingOn();                 \/\/ lighting on\n      vehicleLightingOn();          \/\/ vehicle lighting on\n    }\n  }\n}\n\nvoid vehicleLightingOn() {\n  digitalWrite(vehicleLightingPins&#091;0], LOW);\n  digitalWrite(vehicleLightingPins&#091;1], LOW);\n}\n\nvoid vehicleLightingOff() {\n  digitalWrite(vehicleLightingPins&#091;0], HIGH);\n  digitalWrite(vehicleLightingPins&#091;1], HIGH);\n}\n\nvoid lightingOn() {\n  digitalWrite(lightingPin, LOW);\n}\n\nvoid lightingOff() {\n  digitalWrite(lightingPin, HIGH);\n}\n\nvoid blueLightOn() {\n  for (int i = 0; i &lt; 4; i++) {\n    if (millis() % blueLightTimer&#091;i] &lt; blueLightTimer&#091;i] \/ 2) {\n      digitalWrite(blueLightPins&#091;i * 2], HIGH);\n      digitalWrite(blueLightPins&#091;i * 2 + 1], LOW);\n    } else {\n      digitalWrite(blueLightPins&#091;i * 2], LOW);\n      digitalWrite(blueLightPins&#091;i * 2 + 1], HIGH);\n    }\n  }\n}\n\nvoid blueLightOff() {\n  for (int i = 0; i &lt; 8; i++) {\n    digitalWrite(blueLightPins&#091;i], HIGH);\n  }\n}\n\nvoid flashingLightOn() {\n  if (millis() % flashingLightDelay &lt; 40) {\n    digitalWrite(flashingLightPin, LOW);\n  } else {\n    digitalWrite(flashingLightPin, HIGH);\n  }\n}\n\nvoid flashingLightOff() {\n  digitalWrite(flashingLightPin, HIGH);\n}\n\nvoid runningLightOn() {\n  if (runningLightTimer + runningLightTimeout &lt; millis()) {\n    runningLightTimer = millis();\n    runningLightPosition++;\n    if (runningLightPosition &gt; 2) {\n      runningLightPosition = 0;\n    }\n    for (int i = 0; i &lt; 3; i++) {\n      digitalWrite(runningLightPins&#091;i], HIGH);\n    }\n    digitalWrite(runningLightPins&#091;runningLightPosition], LOW);\n  }\n}\n\nvoid runningLightOff() {\n  runningLightTimer = millis();\n  for (int i = 0; i &lt; 3; i++) {\n    digitalWrite(runningLightPins&#091;i], HIGH);\n  }\n}\n\nvoid soundOn() {\n  switch (soundState) {\n    case 0:\n      Serial.println(\"soundTimer 0\");\n      soundRandom = random(mp3Likelihood);\n      if (soundRandom &lt; 1) {\n        soundState = 1;\n        theSound = random(mp3Count) + 1;\n        soundTimer = millis();\n        soundTimeout = mp3Duration&#091;theSound - 1] * 1000;\n        Serial.print(\"Playsound: \\t\\t\\t\"); Serial.print(theSound); Serial.print(\"\\t\\t\\t\"); Serial.println(soundTimeout);\n        myDFPlayer.playFolder(1, theSound); \/\/ play specific mp3 in SD:\/15\/004.mp3; Folder Name(1~99); File Name(1~255)\n        soundPlaying = true;\n      } else {\n        soundTimer = millis();\n        soundTimeout = 500;\n        soundState = 1;\n      }\n      break;\n    case 1:\n      if (soundTimer + soundTimeout &lt; millis()) {\n        soundPlaying = false;\n        soundState = 0;\n      }\n      break;\n  }\n}\n\n\nvoid soundOff() {\n  if (soundPlaying == true) {\n    Serial.println(soundPlaying);\n    myDFPlayer.pause();\n    soundPlaying = false;\n  }\n}\n\n\/* ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** *\/\n\nvoid receiveFunction() {                      \/\/ receives time of day from control-module\n  receivePulse = digitalRead(receivePin);     \/\/ read out the receive pin\n  \n  if ((receiveTimer + receiveTimeout &lt; millis()) &amp;&amp; (receiveStarted == true)) {\n    \/\/ on timeout and active reception\n    receiveStarted = false;                   \/\/ end active reception\n    myTime = receivedTime - 1;                \/\/ store received time\n    receivedTime = 0;                         \/\/ reset the auxiliary variable for time reception\n    Serial.println(myTime);                   \/\/ serial output\n  }\n  \/\/ if a pulse is detected at the receive pin that was not there before\n  if ((receivePulse == 0) &amp;&amp; (lastReceivePulse == 1)) {\n    receiveTimer = millis();                  \/\/ restart timer\n    if (receiveStarted == false) receiveStarted = true;  \/\/ start active reception, if not already done\n    receivedTime++;                           \/\/ there was a pulse, so increase the auxiliary variable to receive time\n  }\n  lastReceivePulse = receivePulse;            \/\/ remember current state at pin for next pass\n}<\/code><\/pre>\n\n\n<ul class=\"wp-block-latest-posts__list is-grid columns-3 wp-block-latest-posts\"><\/ul>\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link\" href=\"https:\/\/starthardware.org\/en\/category\/projects\/arduino-projects\/raylfx\/\" target=\"_blank\" rel=\"noreferrer noopener\">View all RaylFX modules \u00bb<\/a><\/div>\n<\/div>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>This module of the RaylFX system controls an operation site. It includes four pairs of blue lights that can flash at different speeds, a 3-channel running light, e.g. for barriers, a strobe light, vehicle lighting (headlights, taillights) and accident scene lighting in the evening. This allows fire department and\/or police operations to be equipped with&hellip;&nbsp;<a href=\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">RaylFX \u2013 Operation Site with Arduino and flashing blue light<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":511,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[5,9],"tags":[],"class_list":["post-502","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino-projects","category-raylfx"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>RaylFX \u2013 Operation Site with Arduino and flashing blue light<\/title>\n<meta name=\"description\" content=\"RaylFX \u2013 Create a functional operation site with blue lights, flashing lights, vehicle lighting and sound using Arduino Nano and RaylFX.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RaylFX \u2013 Operation Site with Arduino and flashing blue light\" \/>\n<meta property=\"og:description\" content=\"RaylFX \u2013 Create a functional operation site with blue lights, flashing lights, vehicle lighting and sound using Arduino Nano and RaylFX.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/\" \/>\n<meta property=\"og:site_name\" content=\"StartHardware - Tutorials for Arduino\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-21T16:44:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-27T14:25:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-operation-site-930x620-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"930\" \/>\n\t<meta property=\"og:image:height\" content=\"620\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Hermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/starthardware.org\/en\/#website\",\"url\":\"https:\/\/starthardware.org\/en\/\",\"name\":\"StartHardware - Tutorials for Arduino\",\"description\":\"Arduino, Electronics, Fun\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/starthardware.org\/en\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-operation-site-930x620-1.jpg\",\"contentUrl\":\"https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-operation-site-930x620-1.jpg\",\"width\":930,\"height\":620,\"caption\":\"RaylFX operation site flashing blue light, siren, MP3 player with Arduino Nano\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#webpage\",\"url\":\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/\",\"name\":\"RaylFX \u2013 Operation Site with Arduino and flashing blue light\",\"isPartOf\":{\"@id\":\"https:\/\/starthardware.org\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#primaryimage\"},\"datePublished\":\"2021-03-21T16:44:18+00:00\",\"dateModified\":\"2021-03-27T14:25:20+00:00\",\"author\":{\"@id\":\"https:\/\/starthardware.org\/en\/#\/schema\/person\/37dd49804e351d0045589790d695d99c\"},\"description\":\"RaylFX \u2013 Create a functional operation site with blue lights, flashing lights, vehicle lighting and sound using Arduino Nano and RaylFX.\",\"breadcrumb\":{\"@id\":\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/starthardware.org\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RaylFX \u2013 Operation Site with Arduino and flashing blue light\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/starthardware.org\/en\/#\/schema\/person\/37dd49804e351d0045589790d695d99c\",\"name\":\"David Hermann\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/starthardware.org\/en\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5c1f55f9c9addf2633dc5513f65e57c6b11de8c1d05cab7a65be1e402233d543?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5c1f55f9c9addf2633dc5513f65e57c6b11de8c1d05cab7a65be1e402233d543?s=96&d=mm&r=g\",\"caption\":\"David Hermann\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RaylFX \u2013 Operation Site with Arduino and flashing blue light","description":"RaylFX \u2013 Create a functional operation site with blue lights, flashing lights, vehicle lighting and sound using Arduino Nano and RaylFX.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/","og_locale":"en_US","og_type":"article","og_title":"RaylFX \u2013 Operation Site with Arduino and flashing blue light","og_description":"RaylFX \u2013 Create a functional operation site with blue lights, flashing lights, vehicle lighting and sound using Arduino Nano and RaylFX.","og_url":"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/","og_site_name":"StartHardware - Tutorials for Arduino","article_published_time":"2021-03-21T16:44:18+00:00","article_modified_time":"2021-03-27T14:25:20+00:00","og_image":[{"width":930,"height":620,"url":"https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-operation-site-930x620-1.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Hermann","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/starthardware.org\/en\/#website","url":"https:\/\/starthardware.org\/en\/","name":"StartHardware - Tutorials for Arduino","description":"Arduino, Electronics, Fun","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/starthardware.org\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#primaryimage","inLanguage":"en-US","url":"https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-operation-site-930x620-1.jpg","contentUrl":"https:\/\/starthardware.org\/en\/wp-content\/uploads\/2021\/03\/raylfx-operation-site-930x620-1.jpg","width":930,"height":620,"caption":"RaylFX operation site flashing blue light, siren, MP3 player with Arduino Nano"},{"@type":"WebPage","@id":"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#webpage","url":"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/","name":"RaylFX \u2013 Operation Site with Arduino and flashing blue light","isPartOf":{"@id":"https:\/\/starthardware.org\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#primaryimage"},"datePublished":"2021-03-21T16:44:18+00:00","dateModified":"2021-03-27T14:25:20+00:00","author":{"@id":"https:\/\/starthardware.org\/en\/#\/schema\/person\/37dd49804e351d0045589790d695d99c"},"description":"RaylFX \u2013 Create a functional operation site with blue lights, flashing lights, vehicle lighting and sound using Arduino Nano and RaylFX.","breadcrumb":{"@id":"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/starthardware.org\/en\/raylfx-operation-site-with-arduino-and-flashing-blue-light\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/starthardware.org\/en\/"},{"@type":"ListItem","position":2,"name":"RaylFX \u2013 Operation Site with Arduino and flashing blue light"}]},{"@type":"Person","@id":"https:\/\/starthardware.org\/en\/#\/schema\/person\/37dd49804e351d0045589790d695d99c","name":"David Hermann","image":{"@type":"ImageObject","@id":"https:\/\/starthardware.org\/en\/#personlogo","inLanguage":"en-US","url":"https:\/\/secure.gravatar.com\/avatar\/5c1f55f9c9addf2633dc5513f65e57c6b11de8c1d05cab7a65be1e402233d543?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c1f55f9c9addf2633dc5513f65e57c6b11de8c1d05cab7a65be1e402233d543?s=96&d=mm&r=g","caption":"David Hermann"}}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/posts\/502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/comments?post=502"}],"version-history":[{"count":23,"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/posts\/502\/revisions"}],"predecessor-version":[{"id":805,"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/posts\/502\/revisions\/805"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/media\/511"}],"wp:attachment":[{"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/media?parent=502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/categories?post=502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/starthardware.org\/en\/wp-json\/wp\/v2\/tags?post=502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}