// Include Libraries
#include "Arduino.h"
#include "NewPing.h"
#include "RGBLed.h"
// Pin Definitions - RGB Strip
#define LEDSTRIPRGB_PIN_SIGR 9
#define LEDSTRIPRGB_PIN_SIGG 6
#define LEDSTRIPRGB_PIN_SIGB 5
// Pin Definitions - Ultrasonic Sensor
#define HCSR04_PIN_TRIG 3
#define HCSR04_PIN_ECHO 2
// Global variables and defines - RGB Strip
#define LedStripRGB_TYPE COMMON_CATHODE
// object initialization
RGBLed LedStripRGB(LEDSTRIPRGB_PIN_SIGR,LEDSTRIPRGB_PIN_SIGG,LEDSTRIPRGB_PIN_SIGB,LedStripRGB_TYPE);
// Global variables and defines - Ultrasonic sensor
NewPing hcsr04(HCSR04_PIN_TRIG,HCSR04_PIN_ECHO);
long timeout = 0; //define timeout used to switch RGB strip ON and OFF
int colors = -1; // cycle colors
// Setup the essentials for your circuit to work. It runs first every time your circuit is powered with electricity.
void setup()
{
// Setup Serial which is useful for debugging
// Use the Serial Monitor to view printed messages
Serial.begin(9600);
Serial.println("start");
}
// Main logic of your circuit. It defines the interaction between the components you selected. After setup, it runs over and over again, in an eternal loop.
void loop()
{
int hcsr04Dist = hcsr04.ping_cm();
//delay(10);
if (hcsr04Dist == 0)
{
//ignore
}
else if (hcsr04Dist < 40)
{
//Serial.print(F("Distance: ")); Serial.print(hcsr04Dist); Serial.println(F("[cm]"));
if (timeout == 0)
{
//Serial.println("ON:");
// 1. sets LED Strip RGB color to purple. Change the values in the brackets to (255,0,0) for pure RED, (0,255,0) for pure GREEN and (0,0,255) for pure BLUE.
colors = (colors + 1) % 3;
switch (colors)
{
case 0:
LedStripRGB.setRGB(255, 0, 0);
//Serial.println("RED");
break;
case 1:
LedStripRGB.setRGB(0, 255, 0);
//Serial.println("GREEN");
break;
case 2:
LedStripRGB.setRGB(0, 0, 255);
//Serial.println("BLUE");
break;
}
}
timeout = millis() + 750;
}
if (timeout > 0 &&
millis() > timeout)
{
//Serial.println("OFF:");
timeout = 0;
LedStripRGB.turnOff(); // 3. turns LED Strip RGB off (showing no color). Change the values in the brackets to alter the color.
}
}
/*******************************************************
* Circuito.io is an automatic generator of schematics and code for off
* the shelf hardware combinations.
* Copyright (C) 2016 Roboplan Technologies Ltd.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
* In addition, and without limitation, to the disclaimers of warranties
* stated above and in the GNU General Public License version 3 (or any
* later version), Roboplan Technologies Ltd. ("Roboplan") offers this
* program subject to the following warranty disclaimers and by using
* this program you acknowledge and agree to the following:
* THIS PROGRAM IS PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS, AND
* WITHOUT WARRANTIES OF ANY KIND EITHER EXPRESS OR IMPLIED. ROBOPLAN
* HEREBY DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
* NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, TITLE, FITNESS
* FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND THOSE ARISING BY
* STATUTE OR FROM A COURSE OF DEALING OR USAGE OF TRADE.
* YOUR RELIANCE ON, OR USE OF THIS PROGRAM IS AT YOUR SOLE RISK.
* ROBOPLAN DOES NOT GUARANTEE THAT THE PROGRAM WILL BE FREE OF, OR NOT
* SUSCEPTIBLE TO, BUGS, SECURITY BREACHES, OR VIRUSES. ROBOPLAN DOES
* NOT WARRANT THAT YOUR USE OF THE PROGRAM, INCLUDING PURSUANT TO
* SCHEMATICS, INSTRUCTIONS OR RECOMMENDATIONS OF ROBOPLAN, WILL BE SAFE
* FOR PERSONAL USE OR FOR PRODUCTION OR COMMERCIAL USE, WILL NOT
* VIOLATE ANY THIRD PARTY RIGHTS, WILL PROVIDE THE INTENDED OR DESIRED
* RESULTS, OR OPERATE AS YOU INTENDED OR AS MAY BE INDICATED BY ROBOPLAN.
* YOU HEREBY WAIVE, AGREE NOT TO ASSERT AGAINST, AND RELEASE ROBOPLAN,
* ITS LICENSORS AND AFFILIATES FROM, ANY CLAIMS IN CONNECTION WITH ANY OF
* THE ABOVE.
********************************************************/