Hi,
This is the last video i made this morning. I added color additives to the water but the camera did not catch the graphics in the waterfall :)...
I am currently involves in too many projects and i am abandoning it for the time being. Following is the micro-controller programming i did:
This is the last video i made this morning. I added color additives to the water but the camera did not catch the graphics in the waterfall :)...
I am currently involves in too many projects and i am abandoning it for the time being. Following is the micro-controller programming i did:
//Pin connected to ST_CP of 74HC595 int latchPin = 6; //Pin connected to SH_CP of 74HC595 int clockPin = 13; ////Pin connected to DS of 74HC595 int dataPin = 11; byte FirstByte; byte SecondByte; byte ThirdByte; byte FourthByte; byte FifthByte; int val; byte serialInArray[5]; // array for storing 5 bytes as they arrive from VB software int serialCount = 0; // for counting the number of bytes received void setup() { //Start Serial for debuging purposes Serial.begin(9600); //set pins to output because they are addressed in the main loop pinMode(latchPin, OUTPUT); } void loop() { if (Serial.available() > 0){ serialInArray[serialCount] = Serial.read(); // read a byte sent by processing serialCount++; // increment number of bytes received if (serialCount > 4 ) { FirstByte = serialInArray[0]; SecondByte = serialInArray[1]; ThirdByte = serialInArray[2]; FourthByte = serialInArray[3]; FifthByte = serialInArray[4]; Serial.print(FirstByte); Serial.print(SecondByte); Serial.print(ThirdByte); Serial.print(FourthByte); Serial.print(FifthByte); Serial.println(""); digitalWrite(latchPin, 0); shiftOut(dataPin, clockPin, FirstByte); shiftOut(dataPin, clockPin, SecondByte); shiftOut(dataPin, clockPin, ThirdByte); shiftOut(dataPin, clockPin, FourthByte); shiftOut(dataPin, clockPin, FifthByte); //return the latch pin high to signal chip that it //no longer needs to listen for information digitalWrite(latchPin, 1); serialCount = 0; delay(20); } } } void shiftOut(int myDataPin, int myClockPin, byte myDataOut) { // This shifts 8 bits out MSB first, //on the rising edge of the clock, //clock idles low //internal function setup int i=0; int pinState; pinMode(myClockPin, OUTPUT); pinMode(myDataPin, OUTPUT); //clear everything out just in case to //prepare shift register for bit shifting digitalWrite(myDataPin, 0); digitalWrite(myClockPin, 0); //for each bit in the byte myDataOut� //NOTICE THAT WE ARE COUNTING DOWN in our for loop //This means that 000001 or "1" will go through such //that it will be pin Q0 that lights. for (i=7; i>=0; i--) { digitalWrite(myClockPin, 0); //if the value passed to myDataOut and a bitmask result // true then... so if we are at i=6 and our value is // %11010100 it would the code compares it to %01000000 // and proceeds to set pinState to 1. if ( myDataOut & (1< pinState= 1; } else { pinState= 0; } //Sets the pin to HIGH or LOW depending on pinState digitalWrite(myDataPin, pinState); //register shifts bits on upstroke of clock pin digitalWrite(myClockPin, 1); //zero the data pin after shift to prevent bleed through digitalWrite(myDataPin, 0); } //stop shifting digitalWrite(myClockPin, 0); }
hey khalid can you list the parts you used thanks
ReplyDeleteyou start the project almost finish it then you abandon it :S you let us down
ReplyDelete