Pages: [1]   Go Down
Author Topic: Help me please! [Solved]  (Read 281 times)
0 Members and 1 Guest are viewing this topic.
Italy
Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello to everyone
I need help, please.
I am a beginner with Arduino's programming so please forgive me for any mistakes I can say or do.
I made a small project with Arduino and the TLC5940 with the purpose of illuminating two different spaces at different times. The first is the garage with the relative path to get there, I used for this place 8 led spots,  the second is the shed and its path and I used 6 led spots, in both cases the switching on and off of the single LEDs are progressive.

For lighting I used 2 pir sensors for each 1, 1 sensor LDR to exclude the switch daytime lights. I also added a switch that allows in case of need the cancellation of the sensor LDR and then get the lights with a continuous cycle. I made this project, and it works fairly well, the delays are not definitive and I thought 5 minutes of lighting before renewable turning off, maybe from another sensors, the delay of the sensor LDR too I do not know whether to give 5 or 10 minutes just to avoid the flickering of the operation.

As I said, some issues founded, such as when you turn on the 'LDR or pressing the switch to exclude it, sometimes part of a power cycle, also the setting of the' LDR seems to me not to respond adequately, also the whole system seems to me a bit 'slow.
I'll post the code and any suggestions to fix the anomalies are more than welcome.
Thanks in advance for any tips and help.


Code:
[code]#include "Tlc5940.h"
#define sensor_1   7         // sensore box
#define sensor_2   8         // sensore shed
#define button 5             // interruttore always
#define led  6                   // led always on
#define led_LDR  2           // il pin 2 led ldr
const int sensorValue = 150;    // setting  LDR sensor
int x = 0;              // sensor variable status
int always = 0;         // switch variable status

void setup()
{
  pinMode(led_LDR,OUTPUT);
  pinMode(led,OUTPUT);
  pinMode(sensor_1, INPUT);      
  pinMode(sensor_2, INPUT);
  pinMode(button, INPUT);
  Tlc.init();
}

void box()
  {
for (int channel =5; channel >=0; channel --)
  {
  Tlc.set(channel, 4095);
  Tlc.update();
 delay(500);
 }
delay(1000); // da modificare  con 300000 = 5 minuti
for (int channel =5; channel >=0; channel --)
{
Tlc.set(channel, 0);
  Tlc.update();
 delay(500);
  }
}    
// ======= fine box ========

void shed()
 {
for (int channel =0; channel <=7; channel ++)
  {
  Tlc.set(channel, 4095);
  Tlc.update();
 delay(500);
 }
delay(1000);  // modifica  con 300000 = 5 minuti
for (int channel =0; channel <=7; channel ++)
{
Tlc.set(channel, 0);
  Tlc.update();
 delay(500);
  }
}
//  ======= fine shed ===========

void luminoso()
{
 digitalRead(sensor_1)&& digitalRead(sensor_2) == LOW;
}
  void buio()
{
  x = digitalRead(sensor_1);
if ( x == HIGH) {    
box();
}
x = digitalRead(sensor_2);
if ( x == HIGH) {    
shed();
 }
}

void loop(){
  
  always = digitalRead(button);
if ( always == HIGH) {    
digitalWrite(led, HIGH);
digitalWrite(led_LDR,LOW);
buio();
}
  else  {
digitalWrite(led, LOW);
int sensor = analogRead(A0);    
if (sensor < sensorValue)
{    
luminoso();
digitalWrite(led_LDR,LOW);
delay(2000);          // attende 5 secondi
}
else {
buio();
digitalWrite(led_LDR,HIGH);
delay(2000);          // attende 5 secondi
  }
 }  
}
[/code]
« Last Edit: September 03, 2013, 03:52:09 am by aldo1958 » Logged

Offline Offline
Edison Member
*
Karma: 48
Posts: 1631
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You need to read *all* of How to use this forum
and pay particular attention to How to post code properly

Pete
Logged

Italy
Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks Pete
Logged

Idaho, US
Offline Offline
God Member
*****
Karma: 19
Posts: 902
Special User
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Any time a project is "slow" I recommend getting rid of all delay() statements.

See: http://arduino.cc/en/Tutorial/BlinkWithoutDelay for how to schedule things to run for certain lengths of time without the delay() statement.

Also, you should debounce your button (http://arduino.cc/en/Tutorial/Debounce) if it is not already debounced in hardware (such as with a capacitor).
Logged

Italy
Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Many thanks, Tylernt.
Logged

Pages: [1]   Go Up
Jump to: