Skip to content

Commit

Permalink
Clean and new solenoid test
Browse files Browse the repository at this point in the history
some clean of old code, new solenoid test to check one by one
  • Loading branch information
drachezoil committed Sep 18, 2015
1 parent 0a35a98 commit 5ef6ca4
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 93 deletions.
3 changes: 2 additions & 1 deletion arduino_code/openKnitting_handMadepcb_v0_1/communication.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,12 +100,13 @@ class communication {
Serial.print("0");
}
}
*/
/*
Serial.print(",");
Serial.print(myEncoders->encoder1Pos);
Serial.print(",");
Serial.print(mysolenoids->currentStitchSetup );
Serial.print(",");
Serial.print(mysolenoids->currentSolenoidIDSetup);
Serial.print(",");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ void loop() {
// Get data from sensors and send to computer in case solenoids not move
#ifndef attachInterrupEncoders
myEncoders.loopNormal();
#endif
myEndlines.loop();
mysolenoids.loop();
#endif

// Set all solenoids OFF when end of line
if(myEncoders.encoder1Pos==0 || myEncoders.encoder1Pos==255 ){
Expand All @@ -64,6 +64,8 @@ void serialEvent(){
#ifdef attachInterrupEncoders
void encoderChange(){
myEncoders.loopAttachInterrupt();
myEndlines.loop();
mysolenoids.loop();
}
#endif

Expand Down
80 changes: 5 additions & 75 deletions arduino_code/openKnitting_handMadepcb_v0_1/solenoids.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ class solenoids{
22,24,26,28,30,32,34,36,37,35,33,31,29,27,25,23 };
for(int i=0; i<16; i++){
amegaPinsArray[i] = amegaPinsArrayTemp[i];
ledArray[i] = ledArrayTemp[i];
//ledArray[i] = ledArrayTemp[i];
pinMode(amegaPinsArrayTemp[i], OUTPUT);
pinMode(ledArrayTemp[i], OUTPUT);
//pinMode(ledArrayTemp[i], OUTPUT);
}
#endif
}
Expand Down Expand Up @@ -100,7 +100,7 @@ class solenoids{
currentPixState = pixelBin[currentStitchSetup];
if(solenoidstateOn[i] != (currentPixState==1) ){
digitalWrite(amegaPinsArray[i], currentPixState);
digitalWrite(ledArray[i], currentPixState);
//digitalWrite(ledArray[i], currentPixState);
solenoidstateOn[i] = (currentPixState==1);
}
}
Expand All @@ -123,93 +123,23 @@ class solenoids{
currentPixState = pixelBin[currentStitchSetup];
if( solenoidstateOn[i] !=(currentPixState==1) ){
digitalWrite(amegaPinsArray[i], currentPixState);
digitalWrite(ledArray[i], currentPixState);
//digitalWrite(ledArray[i], currentPixState);
solenoidstateOn[i] = (currentPixState==1);
}
}
}
}

/*
if(myEncoders->encoder1Pos<=1 || myEncoders->encoder1Pos>254 ){
if(myEncoders->last_8segmentEncoder != myEncoders->_8segmentEncoder){
sectionPosition = 0;
}else{
sectionPosition = 1;
}
}
*/
}
/*
#ifdef arduinoTypeDUE
if( myEncoders->lastStitch!=myEncoders->stitch){
myEncoders->lastStitch=myEncoders->stitch;
setArduinoMegaPins();
if(changed){
changed = false;
}
}
#endif
*/
}

void ifChanged(){
if(changed){
changed = false;
#ifdef arduinoTypeDUE
setArduinoMegaPins();
#endif
}
}

void setAllSolOff(){
for(int i=0;i<16;i++){
digitalWrite(amegaPinsArray[i], LOW);
digitalWrite(ledArray[i], LOW);
//digitalWrite(ledArray[i], LOW);
solenoidstateOn[i] = false;
}
}

#ifdef arduinoTypeDUE
boolean isCurrentSolenoid(int i,int r){
int stitch = myEncoders->stitch;
int headDirection = -myEncoders->headDirection;
return ( (stitch<=176 && stitch>=-24 && headDirection==-1) && ((stitch-2+(i*headDirection))%16)==r );//|| ( (stitch>=24 && stitch<=224 && headDirection==1) && ((stitch+8-(i*headDirection))%16)==r );
}

void setArduinoMegaPins(){
for(int i=0;i<16;i++){
if( solenoidstate[i]==true )/*isCurrentSolenoid(i,7) myEncoders->headDirection==1 && myEncoders->stitch==25 && i==0 && */
{
if(solenoidstateOn[i]==false){

digitalWrite(amegaPinsArray[i], HIGH);
digitalWrite(ledArray[i], HIGH);
solenoidstateOn[i] = true;
/*
Serial.print(myEncoders->stitch);
Serial.print("::");
Serial.print(i);
Serial.println("::set ON solenoid");
*/
}
}
else if(solenoidstateOn[i]==true) {
digitalWrite(amegaPinsArray[i], LOW);
digitalWrite(ledArray[i], LOW);
solenoidstateOn[i] = false;
/*
Serial.print(myEncoders->stitch);
Serial.print("::");
Serial.print(i);
Serial.println("::set OFF solenoid");
*/
}
}
}
#endif

};
#endif

Expand Down
18 changes: 15 additions & 3 deletions arduino_code/test_incase_error/test_solenoids/test_solenoids.ino
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,28 @@ byte statusSolenoidArray[totalArrayFromSolenoid] =
{
1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

int inByte = 0;

void setup(){
for(int i=0; i<16; i++){
pinMode(solenoidPinsArray[i], OUTPUT);
}
Serial.begin(115200);
for(int i=0; i<16; i++){
digitalWrite(solenoidPinsArray[i], 1);
}
while (! Serial);
Serial.println("Solenoid 1 to 16");
}

void loop(){
for(int i=0; i<16; i++){
digitalWrite(solenoidPinsArray[i], statusSolenoidArray[i]);
if(Serial.available()) {
// get incoming byte:
inByte = Serial.parseInt();
if (inByte>0) Serial.println(inByte);
else inByte = 18;
}
delay(1);
digitalWrite(solenoidPinsArray[inByte-1], 0);
delay(500);
digitalWrite(solenoidPinsArray[inByte-1], 1);
}
7 changes: 0 additions & 7 deletions error pixel.md

This file was deleted.

13 changes: 7 additions & 6 deletions protoAppKnitic_p5/serial_comunication.pde
Original file line number Diff line number Diff line change
Expand Up @@ -217,12 +217,13 @@ void receiveMessageTypeA(String myString) {
//endLineStarted = !args[3].equals("0");
endLineStarted = true;
shift = !args[3].equals("0");
//statusMachine
/*
if(args.length>=6) solenoidsFromArduino = args[5];
if(args.length>=7) currentSolenoidIDSetup = Integer.valueOf(args[6]);
if(args.length>=8) stitchSetupArduino = Integer.valueOf(args[7]);
if(args.length>=9) pixStateArduino = Integer.valueOf(args[8]);
/*//statusMachine
if(args.length>=6) solenoidsFromArduino = args[4];
if(args.length>=7) currentSolenoidIDSetup = Integer.valueOf(args[5]);
println("Solenoids from arduino "+solenoidsFromArduino);
println("Current solenoid "+currentSolenoidIDSetup);
//if(args.length>=8) stitchSetupArduino = Integer.valueOf(args[7]);
//if(args.length>=9) pixStateArduino = Integer.valueOf(args[8]);
*/
lastMessageReceivedFromSerial = millis();
checkBetweenSendAndReceived();
Expand Down
6 changes: 6 additions & 0 deletions todo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
todo

- fix "error in pixel" -> OK
- fix corrupt data that stop the arduino -> OK
- check solenoid glitch
- check beltshift

0 comments on commit 5ef6ca4

Please sign in to comment.