Go Down

Topic: Light Strip Not Lighting (Read 1 time) previous topic - next topic

johnwasser


Can you tell me what the purpose of the relay box is ?


The outputs of the Arduino are 5V and 40 mA maximum current.  The relay allows the 5V signal to control the 12V circuit.  Either the relay has a 5V coil that requires less then 40 mA or there is a transistor next to the relay which allows the Arduino to switch the higher current or voltage the relay needs.  The pictures don't show a clear view of the relay markings or the parts on the relay board so it is hard to tell which is the case.

If you change the Blink example to use Pin 8 (your relay) can you hear the relay click on and off?  If not, there is likely something wrong with the relay or the driving of the relay.
Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

daragh_c

Hey All,
I managed to get the light strip working, by simply taking everything apart and putting it all back together again. The blink program makes the entire board flash so that's working as expected YAY !. Annoying that I waited until the last idea to dismantle, but sure glad it works.

I ended up using pin 8, as the eithernet sheild uses pins 10-13

Thanks a mill for everyone's help !!!

For the record the twitter code is here , But I have removed my MAC and Ip address for obvious reasons...

Code: [Select]
/*
  Twitter Client with Strings

This sketch connects to Twitter using an Ethernet shield. It parses the XML
returned, and looks for <text>this is a tweet</text>

You can use the Arduino Ethernet shield, or the Adafruit Ethernet shield,
either one will work, as long as it's got a Wiznet Ethernet module on board.

This example uses the DHCP routines in the Ethernet library which is part of the
Arduino core from version 1.0 beta 1

This example uses the String library, which is part of the Arduino core from
version 0019. 

Circuit:
  * Ethernet shield attached to pins 10, 11, 12, 13

created 21 May 2011
by Tom Igoe

This code is in the public domain.

*/

int led=8;

#include <SPI.h>
#include <Ethernet.h>


// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX};
IPAddress ip(XX,XX,XX,XXX); //<<< ENTER YOUR IP ADDRESS HERE!!!

// initialize the library instance:
EthernetClient client;

const int requestInterval = 10000;  // delay between requests

char serverName[] = "api.twitter.com";  // twitter URL

boolean requested;                   // whether you've made a request since connecting
long lastAttemptTime = 0;            // last time you connected to the server, in milliseconds

String currentLine = "";            // string to hold the text from server
String tweet = "";                  // string to hold the tweet
boolean readingTweet = false;       // if you're currently reading the tweet



void setup() {
 
  pinMode(led, OUTPUT);
 
   //reserve space for the strings:
currentLine.reserve(256); 
tweet.reserve(150);

//initialize serial:
Serial.begin(9600);
//attempt a DHCP connection:
  if (!Ethernet.begin(mac)) {
    // if DHCP fails, start with a hard-coded address:
    Ethernet.begin(mac, ip);
  }
  // connect to Twitter:

  connectToServer();
}



void loop()
{

 
   
  if (client.connected()) {
    if (client.available()) {
      // read incoming bytes:
      char inChar = client.read();

      // add incoming byte to end of line:
      currentLine += inChar;

      // if you get a newline, clear the line:
      if (inChar == '\n') {
        currentLine = "";
      }
      // if the current line ends with <text>, it will
     // be followed by the tweet:
      if ( currentLine.endsWith("<text>")) {
        // tweet is beginning. Clear the tweet string:
        readingTweet = true;
        tweet = "";
      }
      // if you're currently reading the bytes of a tweet,
      // add them to the tweet String:
      if (readingTweet) {
        if (inChar != '<') {
          tweet += inChar;
        }
        else {
          // if you got a "<" character,
          // you've reached the end of the tweet:
          readingTweet = false;
          Serial.println(tweet);
         
          if(tweet == ">Hello Cruel World"){
           Serial.println("LED ON!");
           flashLight();
           delay(3000);
           
          }
          if(tweet != ">Hello Cruel World"){
          digitalWrite(led, LOW);
           Serial.println("LED OFF!");
          }
         
          // close the connection to the server:
          client.stop();
          Serial.println("Closed Connection");
        }
     }
    }   
  }
  else if (millis() - lastAttemptTime > requestInterval) {
    // if you're not connected, and two minutes have passed since
    // your last connection, then attempt to connect again:
    connectToServer();
  }
}


void flashLight(){
 
  Serial.println("Turning on Light");
digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(5000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000); 
 
}

void connectToServer() {
  // attempt to connect, and wait a millisecond:
  Serial.println("connecting to server...");
  if (client.connect(serverName, 80)) {
    Serial.println("making HTTP request...");
  // make HTTP GET request to twitter:
    client.println("GET /1/statuses/user_timeline.xml?screen_name=RandyMcTester&count=1 HTTP/1.1");
    client.println("HOST: api.twitter.com");
    client.println();
    digitalWrite(led, HIGH);
  }
  // note the time of this connect attempt:
  lastAttemptTime = millis();
}   







Go Up