It compliles but won't run

Win 10 IDE 1.6.8 uno

HI

I have a sketch that works. now i am trying to add a prox switch to start the sketch. I copy “Change of state” from the examples in the IDE. Here is my copy of “change of state” with some changes that does work.

[code]

/*
  State change detection (edge detection)

  Often, you don't need to know the state of a digital input all the time,
  but you just need to know when the input changes from one state to another.
  For example, you want to know when a button goes from OFF to ON.  This is called
  state change detection, or edge detection.

  This example shows how to detect when a button or button changes from off to on
  and on to off.

  The circuit:
   pushbutton attached to pin 2 from +5V
   10K resistor attached to pin 2 from ground
   LED attached from pin 13 to ground (or use the built-in LED on
   most Arduino boards)

  created  27 Sep 2005
  modified 30 Aug 2011
  by Tom Igoe

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/ButtonStateChange

*/

// this constant won't change:
const int  buttonPin = 2;    // the pin that the pushbutton is attached to
const int ledPin = 13;       // the pin that the LED is attached to
int C = 0;

// Variables will change:
int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button
int t = 1;
void setup() {
  // initialize the button pin as a input:
  pinMode(buttonPin, INPUT);
  // initialize the LED as an output:
  pinMode(ledPin, OUTPUT);
  // initialize serial communication:
  Serial.begin(9600);
}


void loop() {
  // read the pushbutton input pin:
  buttonState = digitalRead(buttonPin);

  // compare the buttonState to its previous state
  if (buttonState != lastButtonState) {
    // if the state has changed, increment the counter
    if (buttonState == HIGH) {
      // if the current state is HIGH then the button
      // went from off to on:
      digitalWrite (ledPin, HIGH);
      buttonPushCounter++;
      Serial.println("on");
      Serial.print("number of button pushes:  ");
      Serial.println(buttonPushCounter);
    } else {
      // if the current state is LOW then the button
      // wend from on to off:
      digitalWrite(ledPin, LOW);
      Serial.println("off");
    }
    // Delay a little bit to avoid bouncing
   delay(50);
  }
}

[/code]

Now I add the "ledcontrol.h). the ledPin will come on. but the print out shows about sixty to seventy hits on the prox. switch. Why.

[code]
#include "LedControl.h"
/*
  State change detection (edge detection)

  Often, you don't need to know the state of a digital input all the time,
  but you just need to know when the input changes from one state to another.
  For example, you want to know when a button goes from OFF to ON.  This is called
  state change detection, or edge detection.

  This example shows how to detect when a button or button changes from off to on
  and on to off.

  The circuit:
   pushbutton attached to pin 2 from +5V
   10K resistor attached to pin 2 from ground
   LED attached from pin 13 to ground (or use the built-in LED on
   most Arduino boards)

  created  27 Sep 2005
  modified 30 Aug 2011
  by Tom Igoe

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/ButtonStateChange

*/

// this constant won't change:
const int  buttonPin = 2;    // the pin that the pushbutton is attached to
const int ledPin = 13;       // the pin that the LED is attached to


// Variables will change:

int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button
int t = 1;
void setup() {
  // initialize the button pin as a input:
  pinMode(buttonPin, INPUT);
  // initialize the LED as an output:
  pinMode(ledPin, OUTPUT);
  // initialize serial communication:
  Serial.begin(9600);
}


void loop() {
  // read the pushbutton input pin:
  buttonState = digitalRead(buttonPin);

  // compare the buttonState to its previous state
  if (buttonState != lastButtonState) {
    // if the state has changed, increment the counter
    if (buttonState == HIGH) {
      // if the current state is HIGH then the button
      // went from off to on:
      digitalWrite (ledPin, HIGH);
      
      buttonPushCounter++;
      Serial.println("on");
      Serial.print("number of button pushes:  ");
      Serial.println(buttonPushCounter);
    } else {
      // if the current state is LOW then the button
      // wend from on to off:
      digitalWrite(ledPin, LOW);
      Serial.println("off");
      
    }
    // Delay a little bit to avoid bouncing
   delay(50);
  }
}

[/code]

Show a wiring image and schematic. Do you have a PULLUP resistor, maybe you need INPUT_PULLUP

Where do you update lastButtonState

// save the current state as the last state, //for next time through the loop lastButtonState = buttonState;

Sorry for the long wait. Company came over. I love having people come over, but they need to learn the right time to show up. When I am working on my project is not the right time.

OK I looked over my project fixed lastButtonState = buttonState; Thank you LarryD.

I also found a wrong pin asignment in LedControl lc = LedControl(12, 11, 10, 0);. I had 13 instead of 12.

Right now the prox switch is working led 13 comes on and off as it should, But the lc.setLed(0, 0, 0, true); is not working.

Here is a crud drawing of what i have There is a total of 16 leds I only drew two.

Here are three sketches.

This is for the leds and it works as is.

[code]
#include "LedControl.h"

// pin 12 is connected to the DataIn
// pin 11 is connected to the CLK
// pin 10 is connected to LOAD

LedControl lc = LedControl(12, 11, 10, 0);


int (t) = 200;
int T = 500;
int tt = 25;
int ttt = 20;

void setup() {
 lc.shutdown(0, false);
  lc.setIntensity(0, 5);
  lc.clearDisplay(0);
}


void loop() {



  // put your main code here, to run repeatedly:
  lc.setLed(0, 0, 0, false);//all off
  lc.setLed(0, 0, 1, false);
  lc.setLed(0, 0, 2, false);
  lc.setLed(0, 0, 3, false);
  lc.setLed(0, 0, 4, false);
  lc.setLed(0, 0, 5, false);
  lc.setLed(0, 0, 6, false);
  lc.setLed(0, 0, 7, false);
  lc.setLed(0, 1, 0, false);
  lc.setLed(0, 1, 1, false);
  lc.setLed(0, 1, 2, false);
  lc.setLed(0, 1, 3, false);
  lc.setLed(0, 1, 4, false);
  lc.setLed(0, 1, 5, false);
  lc.setLed(0, 1, 6, false);
  lc.setLed(0, 1, 7, false);
  delay(1000);


  lc.setLed(0, 0, 0, true);//trun one at a time
  delay(t);
  lc.setLed(0, 0, 1, true);
  delay(t);
  lc.setLed(0, 0, 2, true);
  delay(t);
  lc.setLed(0, 0, 3, true);
  delay(t);
  lc.setLed(0, 0, 4, true);
  delay(t);
  lc.setLed(0, 0, 5, true);
  delay(t);
  lc.setLed(0, 0, 6, true);
  delay(t);
  lc.setLed(0, 0, 7, true);
  delay(t);

  lc.setLed(0, 1, 7, true);
  delay(t);
  lc.setLed(0, 1, 6, true);
  delay(t);
  lc.setLed(0, 1, 5, true);
  delay(t);
  lc.setLed(0, 1, 4, true);
  delay(t);
  lc.setLed(0, 1, 3, true);
  delay(t);
  lc.setLed(0, 1, 2, true);
  delay(t);
  lc.setLed(0, 1, 1, true);
  delay(t);
  lc.setLed(0, 1, 0, true);
  delay(100);

  lc.setLed(0, 1, 7, false); //trun all off at a control rate
  lc.setLed(0, 0, 7, false);
  delay(tt);
  lc.setLed(0, 1, 6, false);
  lc.setLed(0, 0, 6, false);
  delay(tt);
  lc.setLed(0, 1, 5, false);
  lc.setLed(0, 0, 5, false);
  delay(tt);
  lc.setLed(0, 1, 4, false);
  lc.setLed(0, 0, 4, false);
  delay(tt);
  lc.setLed(0, 1, 3, false);
  lc.setLed(0, 0, 3, false);
  delay(tt);
  lc.setLed(0, 1, 2, false);
  lc.setLed(0, 0, 2, false);
  delay(50);
  lc.setLed(0, 1, 1, false);
  lc.setLed(0, 0, 1, false);
  delay(50);
  lc.setLed(0, 1, 0, false);
  lc.setLed(0, 0, 0, false);

  delay(1000);

  lc.setLed(0, 1, 0, true);//trun on each in reverse
  lc.setLed(0, 0, 7, true);
  delay(t);
  lc.setLed(0, 1, 1, true);
  lc.setLed(0, 0, 6, true);
  delay(t);
  lc.setLed(0, 1, 2, true);
  lc.setLed(0, 0, 5, true);
  delay(t);
  lc.setLed(0, 1, 3, true);
  lc.setLed(0, 0, 4, true);
  delay(t);
  lc.setLed(0, 1, 4, true);
  lc.setLed(0, 0, 3, true);
  delay(t);
  lc.setLed(0, 1, 5, true);
  lc.setLed(0, 0, 2, true);
  delay(t);
  lc.setLed(0, 1, 6, true);
  lc.setLed(0, 0, 1, true);
  delay(t);
  lc.setLed(0, 1, 7, true);
  lc.setLed(0, 0, 0, true);
  delay(t);
}

[/code]

This is for the prox switch by it self. and it works.

[code]
/*
  State change detection (edge detection)

 Often, you don't need to know the state of a digital input all the time,
 but you just need to know when the input changes from one state to another.
 For example, you want to know when a button goes from OFF to ON.  This is called
 state change detection, or edge detection.

 This example shows how to detect when a button or button changes from off to on
 and on to off.

 The circuit:
 * pushbutton attached to pin 2 from +5V
 * 10K resistor attached to pin 2 from ground
 * LED attached from pin 13 to ground (or use the built-in LED on
   most Arduino boards)

 created  27 Sep 2005
 modified 30 Aug 2011
 by Tom Igoe

This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/ButtonStateChange

 */

// this constant won't change:
const int  buttonPin = 2;    // the pin that the pushbutton is attached to
const int ledPin = 13;       // the pin that the LED is attached to

// Variables will change:
int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button

void setup() {
  // initialize the button pin as a input:
  pinMode(buttonPin, INPUT);
  // initialize the LED as an output:
  pinMode(ledPin, OUTPUT);
  // initialize serial communication:
  Serial.begin(9600);
}


void loop() {
  // read the pushbutton input pin:
  buttonState = digitalRead(buttonPin);

  // compare the buttonState to its previous state
  if (buttonState != lastButtonState) {
    // if the state has changed, increment the counter
    if (buttonState == HIGH) {
      // if the current state is HIGH then the button
      // wend from off to on:
      buttonPushCounter++;
      Serial.println("on");
      Serial.print("number of button pushes:  ");
      Serial.println(buttonPushCounter);
    } else {
      // if the current state is LOW then the button
      // wend from on to off:
      Serial.println("off");
    }
    // Delay a little bit to avoid bouncing
    delay(50);
  }
  // save the current state as the last state,
  //for next time through the loop
  lastButtonState = buttonState;


  // turns on the LED every four button pushes by
  // checking the modulo of the button push counter.
  // the modulo function gives you the remainder of
  // the division of two numbers:
  if (buttonPushCounter % 4 == 0) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }

}

[/code]

and finally my test of the prox and led together. I include one led for simplistic.

[code]
#include "LedControl.h"
/*
  State change detection (edge detection)

  Often, you don't need to know the state of a digital input all the time,
  but you just need to know when the input changes from one state to another.
  For example, you want to know when a button goes from OFF to ON.  This is called
  state change detection, or edge detection.

  This example shows how to detect when a button or button changes from off to on
  and on to off.

  The circuit:
   pushbutton attached to pin 2 from +5V
   10K resistor attached to pin 2 from ground
   LED attached from pin 13 to ground (or use the built-in LED on
   most Arduino boards)

  created  27 Sep 2005
  modified 30 Aug 2011
  by Tom Igoe

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/ButtonStateChange

*/
LedControl lc = LedControl(12, 11, 10, 0);
// this constant won't change:
const int  buttonPin = 2;    // the pin that the pushbutton is attached to
const int ledPin = 13;       // the pin that the LED is attached to


// Variables will change:

int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button

void setup() {
  // initialize the button pin as a input:
  pinMode(buttonPin, INPUT);
  // initialize the LED as an output:
  pinMode(ledPin, OUTPUT);
  // initialize serial communication:
  Serial.begin(9600);
  lc.shutdown(0, false);
lc.setIntensity(0, 3);
lc.clearDisplay(0);
}


void loop() {
  // read the pushbutton input pin:
  buttonState = digitalRead(buttonPin);
  
  // compare the buttonState to its previous state
  if (buttonState != lastButtonState) {
    // if the state has changed, increment the counter
    if (buttonState == HIGH) {
      // if the current state is HIGH then the button
      // went from off to on:


      buttonPushCounter++;
      digitalWrite (ledPin, HIGH);
      lc.setLed(0, 0, 2, true);
      Serial.println("on");
      Serial.print("number of button pushes:  ");
      Serial.println(buttonPushCounter);
    } else {
      // if the current state is LOW then the button
      // wend from on to off:

      Serial.println("off");
      digitalWrite(ledPin, LOW);
      lc.setLed(0, 0, 2, false);
    }
    // Delay a little bit to avoid bouncing
    delay(50);
    lastButtonState = buttonState;
  }
}
Found my mistake and fixed it. It works for now.

I still have to insert the code for the RGBs.

Scan0001.pdf (178 KB)