Project #5: Lamps – Mk01

DonLuc1804Mk02.ino

// ***** Don Luc *****
// Software Version Information
// 1.01
// DonLuc1804Mk02 1.01
// Lamps

#include <Adafruit_NeoPixel.h>
// Which pin on the Arduino is connected to the NeoPixels
// Pin connected => 6
#define PIN 6
// How many NeoPixels are attached to the Arduino
// NUMPIXELS => 4
#define NUMPIXELS 4
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
// Panel Mount 1K potentiometer Bright
// Bright => A0
const int sensorBright = A0;
int sBright = 0;
int brightVal = 0;         // the sensor value
int brightMin = 0;        // minimum sensor value
int brightMax = 0;           // maximum sensor value
// Panel Mount 1K potentiometer
// Delay => A1
const int sensorDelay = A1;
long delayVal = 0;
// Rotary Switch - 10 Position
// Number => A2 (0 => 9)
const int sensorNumber = A2;
// Panel Mount 1K potentiometer
// Red - Led
const int sensorRed = 9;
int red = 0;
int redMin = 0;
int redMax = 0;
// Panel Mount 1K potentiometer
// Green - Led
const int sensorGreen = 8;
int green = 0;
int greenMin = 0;
int greenMax = 0;
// Panel Mount 1K potentiometer
// Blue - Led
const int sensorBlue = 7;
int blue = 0;
int blueMin = 0;
int blueMax = 0;
// variables:
//int x = 0;
int y = 0;
int z = 0;

void loop() {

  number();

}

bright.ino

void bright(){

    switch (sBright) {
        case 1:
            brightVal = 255;
            break;
         default:
            // read the sensor:
            brightVal = analogRead(sensorBright);
            // apply the calibration to the sensor reading
            brightVal = map(brightVal, brightMin, brightMax, 0, 255);        
            // in case the sensor value is outside the range seen during calibration
            brightVal = constrain(brightVal, 0, 255);
            break;
    }
  
}

iled.ino

void iled() {

   // red
   red = analogRead(sensorRed); 
   // apply the calibration to the sensor reading red
   red = map(red, redMin, redMax, 0, 255);
   // in case the sensor value is outside the range seen during calibration
   red = constrain(red, 0, 255);
   // green
   green = analogRead(sensorGreen); 
   // apply the calibration to the sensor reading red
   green = map(green, greenMin, greenMax, 0, 255);
   // in case the sensor value is outside the range seen during calibration
   green = constrain(green, 0, 255);
   // blue
   blue = analogRead(sensorBlue); 
   // apply the calibration to the sensor reading red
   blue = map(blue, blueMin, blueMax, 0, 255);
   // in case the sensor value is outside the range seen during calibration
   blue = constrain(blue, 0, 255);
                 
}

neopix.ino

void neopix() {
  
  for(int i=0; i<NUMPIXELS; i++){

    // bright
    bright();   
    pixels.setBrightness( brightVal );
    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255    
    pixels.setPixelColor(i, pixels.Color(red,green,blue));
    // show
    pixels.show(); // This sends the updated pixel color to the hardware.
    // delay
    delay(50); // Delay for a period of time (in milliseconds).
    
  }
  
}

neopixt.ino

void neopixt() {
  
  for(int i=4; i<NUMPIXELS; i--){

    // bright
    bright();   
    pixels.setBrightness( brightVal );
    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255    
    pixels.setPixelColor(i, pixels.Color(red,green,blue));
    // show
    pixels.show(); // This sends the updated pixel color to the hardware.
    // delay
    delay(50); // Delay for a period of time (in milliseconds).
    
  }
  
}

number.ino

void number(){

  z = analogRead(sensorNumber);
  y = (z / 127);

  sBright = 20000;
  
  // range value:
  switch (y) {
    case  0:
      // Led
      iled();
      // neopix
      neopix();
      // delay
      delayVal = (0);     
      break;
    case 1:
      // Led
      iled();
      // neopix
      neopix();
      // delay
      sdelay();
      break;
    case 2:
      // Led
      iled();
      // neopixt
      neopixt();
      // delay
      sdelay();
      break;
    case 3:
      // White
      red = 255;
      green = 255;
      blue = 255; 
      // neopix       
      neopix();
      // delay
      delayVal = (0);
      break;  
    case 4:
      // Green
      red = 0;
      green = 255;
      blue = 0;
      // neopix        
      neopix();
      // delay
      delayVal = (0);
      break;
    case 5:
      // Red
      red = 255;
      green = 0;
      blue = 0;        
      // neopix        
      neopix();
      // delay
      delayVal = (0);
      break;
    case 6:
      // White
      red = 255;
      green = 255;
      blue = 255; 
      // neopix       
      neopix();
      // delay
      sdelay();
      break;       
    case 7:
      // Green
      red = 0;
      green = 255;
      blue = 0; 
      // neopix       
      neopix();
      // delay
      sdelay();
      break; 
    case 8:
      // Red
      red = 255;
      green = 0;
      blue = 0; 
      // neopix       
      neopix();
      // delay
      sdelay();
      break; 
    case 9:

      break;
  }
  
}

sdelay.ino

void sdelay() {

    delayVal = analogRead(sensorDelay);
    delayVal = (250 * delayVal);
      
}

setup.ino

void setup() {
  
    pixels.begin(); // This initializes the NeoPixel library.
    
}

Don Luc

SparkFun MicroView – OLED Arduino Module

Sparkfun: DEV-12923

Description

The MicroView is the first chip-sized Arduino compatible module that lets you see what your Arduino is thinking using a built-in OLED display. With the on-board 64×48 pixel OLED, you can use the MicroView to display sensor data, emails, pin status, and more. It also fits nicely into a breadboard to make prototyping easy. The MicroView also has a full-featured Arduino library to make programming the module easy.

In the heart of MicroView there is ATMEL’s ATmega328P, 5V & 3.3V LDO and a 64×48 pixel OLED display, together with other passive components that allow the MicroView to operate without any external components other than a power supply. Additionally, the MicroView is 100% code compatible with Arduino Uno (ATmega328P version), meaning the code that runs on an Arduino Uno will also be able to run on the MicroView if the IO pins used in the code are externally exposed on the MicroView.

Features

* 64×48 Pixel OLED Display
* ATmega328P
* 5V Operational Voltage
* VIN Range: 3.3V – 16V
* 12 Digital I/O Pins (3 PWM)
* 6 Analog Inputs
* Breadboard Friendly DIP Package
* 32KB Flash Memory
* Arduino IDE 1.0+ Compatible

Don Luc

SparkFun: SparkFun Decade Resistance Box

SparkFun: KIT-13006

SparkFun Decade Resistance Box

Description

This is the SparkFun Decade Resistance Box, an involved PTH soldering kit that allows you to quickly and accurately dial in a specific resistance value between 0 and 999,990 Ohm, in 10 Ohm increments. The concept is simple, a decade box is a tool that contains resistors of many values that can be accessed via mechanical switches. All you need to do is just adjust the knobs to output any of the discrete resistances offered by the box. Once assembled, each kit will have controls that correspond to the digits in a decimal number – a control for the tens position, a control for the hundreds position, and so on.

Includes

1 x Decade Resistance Box PCB
1 x Red Binding Post
1 x Black Binding Post
5 x Rotary Switch – 1-pole 10-position, with dress washer and hex nut
9 x 10 Ohm Resistor – ¼ W, 1%
9 x 100 Ohm Resistor – ¼ W, 1%
9 x 1000 Ohm Resistor – ¼ W, 1%
9 x 100K Ohm Resistor – ¼ W, 1%
9 x 10K Ohm Resistor – ¼ W, 1%

Don Luc