salve al vecchio ide ho aggiunto la gestione pin motori attraverso easy driver, ho aggiunto anche l'istruzione if ma me la da sbaglia, ripropongo anche l'altra domanda, la conversione da binario a intero l'ho fatta correttamente? grazie. non userò la seriale
int PinA=31; //primo pin che arriva dal plc
int PinB=33; //secondo pin che arriva dal plc
int PinC=35; //terzo pin che arriva dal plc
int PinD=37; //quarto pin che arriva dal plc
int PinE=39; //quinto pin che arriva dal plc
int PinF=41; //sesto pin che arriva dal plc
int PinG=43; //settimo pin che arriva dal plc
int PinH=45; //ottavo pin che arriva dal plc
int Pinaser=30; //pin che va collegato al relè per alimentazione laser
int ConvertToInt=0;
int conversione(bool BIT0,bool BIT1 ,bool BIT2,bool BIT3,bool BIT4,bool BIT5,bool BIT6,bool BIT7);
int stepmot1=10;
int stepmot2=4;
int dirmot1=9;
int dirmot2=3;
bool BIT0=0,BIT1=0,BIT2=0,BIT3=0,BIT4=0,BIT5=0,BIT6=0,BIT7=0; // assegnazione come variabile booleana a bit
void setup()
{
pinMode(stepmot1, OUTPUT);
pinMode(stepmot2, OUTPUT);
pinMode(dirmot1, OUTPUT);
pinMode(dirmot2, OUTPUT);
pinMode(PinA, INPUT); //dichiarazione pin come input
pinMode(PinB, INPUT); //dichiarazione pin come input
pinMode(PinC, INPUT); //dichiarazione pin come input
pinMode(PinD, INPUT); //dichiarazione pin come input
pinMode(PinE, INPUT); //dichiarazione pin come input
pinMode(PinF, INPUT); //dichiarazione pin come input
pinMode(PinG, INPUT); //dichiarazione pin come input
pinMode(PinH, INPUT); //dichiarazione pin come input
pinMode(30, OUTPUT); //dichiarazione pin come uscita
digitalWrite(9,LOW); //assegnazione stato zero come valore inziale
digitalWrite(10,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(3,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(4,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(30,LOW); //assegnazione stato zero come valore inziale
digitalWrite(31,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(33,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(35,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(37,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(39,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(41,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(43,LOW); //assegnazione stato zero come valore iniziale
digitalWrite(45,LOW); //assegnazione stato zero come valore iniziale
int ConvertToInt=0; //richiamo sottoprogramma conversione e assegnazione valore inizale a zero
}
void loop()
if (ConvertToInt == 0){
digitalWrite(30,LOW);
}
else (conversione!=0);
{
digitalWrite(30,HIGH);
delay(40000);
digitalWrite(30,LOW);
}
{
BIT0=digitalRead(PinA); //assegnazione bit a pin che arriva dal plc
BIT1=digitalRead(PinB); //assegnazione bit a pin che arriva dal plc
BIT2=digitalRead(PinC); //assegnazione bit a pin che arriva dal plc
BIT3=digitalRead(PinD); //assegnazione bit a pin che arriva dal plc
BIT4=digitalRead(PinE); //assegnazione bit a pin che arriva dal plc
BIT5=digitalRead(PinF); //assegnazione bit a pin che arriva dal plc
BIT6=digitalRead(PinG); //assegnazione bit a pin che arriva dal plc
BIT7=digitalRead(PinH); //assegnazione bit a pin che arriva dal plc
switch(conversione(BIT0,BIT1,BIT2,BIT3,BIT4,BIT5,BIT6,BIT7)) //comando switch
{
case 1:
{
}
break;
case 2:
{
}
break;
case 3:
{
}
break;
default:;
};
}
int conversione(bool BIT0,bool BIT1 ,bool BIT2,bool BIT3,bool BIT4,bool BIT5,bool BIT6,bool BIT7) //dichiarazione variabile booleana a bit
{
ConvertToInt=(BIT0*(2^0))+(BIT1*(2^1))+(BIT0*(2^2))+(BIT1*(2^3))+(BIT0*(2^4))+(BIT1*(2^5))+(BIT0*(2^6))+(BIT1*(2^7)); //conversione da binario a digitale
}