#include void receivedData(); float loopinterval = 5000; void setup() { Serial.begin(115200); PhyphoxBLE::start(); PhyphoxBLE::configHandler=&receivedData; //Experiment PhyphoxBleExperiment rgbmix_l; rgbmix_l.setTitle("RGB Colour Mixing (loop mode)"); rgbmix_l.setCategory("Arduino Nano 33 BLE Sense"); rgbmix_l.setDescription("This simple experiment utilises the on-board RGB LEDs of the Arduino Nano 33 Sense BLE in order to demonstrate the effect of additive colour mixing (e.g. red and green perceived as yellow). The code loops through a number of possible RGB combinations (adjust the interval if you would like to speed up or slow down the rotation of colours, the default is 5 seconds). To observe the effect you could either project the light created by the LEDs on a piece of paper or even better use your phone's camera and adjust its exposure settings accordingly (showcase video https://youtu.be/udVFqAXMCKk)."); //View PhyphoxBleExperiment::View firstView; firstView.setLabel("FirstView"); //Edit PhyphoxBleExperiment::Edit Interval; Interval.setLabel("Interval"); Interval.setUnit("s"); Interval.setSigned(false); Interval.setDecimal(false); Interval.setChannel(1); firstView.addElement(Interval); rgbmix_l.addView(firstView); PhyphoxBLE::addExperiment(rgbmix_l); } void loop() { digitalWrite(LEDR, LOW); digitalWrite(LEDG, HIGH); digitalWrite(LEDB, HIGH); delay(loopinterval); digitalWrite(LEDR, LOW); digitalWrite(LEDG, LOW); digitalWrite(LEDB, HIGH); delay(loopinterval); digitalWrite(LEDR, HIGH); digitalWrite(LEDG, LOW); digitalWrite(LEDB, HIGH); delay(loopinterval); digitalWrite(LEDR, HIGH); digitalWrite(LEDG, LOW); digitalWrite(LEDB, LOW); delay(loopinterval); digitalWrite(LEDR, HIGH); digitalWrite(LEDG, HIGH); digitalWrite(LEDB, LOW); delay(loopinterval); digitalWrite(LEDR, LOW); digitalWrite(LEDG, HIGH); digitalWrite(LEDB, LOW); delay(loopinterval); digitalWrite(LEDR, LOW); digitalWrite(LEDG, LOW); digitalWrite(LEDB, LOW); delay(loopinterval); } void receivedData(){ float receivedInterval; PhyphoxBLE::read(receivedInterval); if(receivedInterval>0){ loopinterval=receivedInterval*1000; } }