Una volta vidi un programma composto da più "schede" dove ogni scheda gestiva un sensore e il micro "portava avanti" le gestioni parallelamente e non consecutivamente, perlomeno lo interpretai così, cosa che vorrei chiarire.
Spero di essermi spiegato in modo "capibile" e ringrazio fin d'ora chi mi aiuterà a capire una cosa nuova in questo mondo bellissimo. Allego il programma:
- Codice: Seleziona tutto
int triggerPortDX = 8;
int echoPortDX = 42;
int triggerportSX = 9;
int echoportSX = 44;
int VEL_MOT_SX = 10;
int VEL_MOT_DX = 6;
int IN2_MOTSX = 46;
int IN1_MOTSX = 48;
int IN2_MOTDX = 50;
int IN1_MOTDX = 52;
void setup()
{
pinMode(triggerPortDX, OUTPUT);
pinMode(triggerportSX, OUTPUT);
pinMode(echoPortDX, INPUT);
pinMode(echoportSX, INPUT);
pinMode(VEL_MOT_SX, OUTPUT);
pinMode(VEL_MOT_DX, OUTPUT);
pinMode(IN1_MOTSX, OUTPUT);
pinMode(IN2_MOTSX, OUTPUT);
pinMode(IN1_MOTDX, OUTPUT);
pinMode(IN2_MOTDX, OUTPUT);
Serial.begin(9600);
}
void loop()
{
// Generazione impulso sensore DX
digitalWrite(triggerPortDX, LOW);
digitalWrite(triggerPortDX, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPortDX, LOW);
// Calcolo del tempo attraverso il pin di echo DX
long durataDX = pulseIn(echoPortDX, HIGH);
long distanzaDX = durataDX/58.31;
// Generazione impulso sensore SX
digitalWrite(triggerportSX, LOW);
digitalWrite(triggerportSX, HIGH);
delayMicroseconds(10);
digitalWrite(triggerportSX, LOW);
// Calcolo del tempo attraverso il pin di echo SX
long durataSX = pulseIn(echoportSX, HIGH);
long distanzaSX = durataSX/58.31;
// Analisi della distanza DX e riproduzione su monitor Seriale
Serial.print("distanzaDX: ");
if( durataDX > 38000 ){
Serial.println("Fuori portata");// dopo 38ms è fuori dalla portata del sensore
}
else{
Serial.print(distanzaDX);
Serial.println(" cm");
}
// Analisi della distanza SX e riproduzione su monitor Seriale
Serial.print("distanzaSX: ");
if( durataSX > 38000 ){
Serial.println("Fuori portata");// dopo 38ms è fuori dalla portata del sensore
}
else{
Serial.print(distanzaSX);
Serial.println(" cm");
delay (500);
}
// Gestione dei motori su segnali provenienti capsule
if((distanzaDX>40)&&(distanzaSX>40))
{digitalWrite(IN2_MOTDX,LOW);
digitalWrite(IN1_MOTDX,HIGH);
digitalWrite(VEL_MOT_DX,255);
digitalWrite(IN2_MOTSX,LOW);
digitalWrite(IN1_MOTSX,HIGH);
digitalWrite(VEL_MOT_SX,255);
}
else
{digitalWrite(IN1_MOTDX,LOW);
digitalWrite(IN2_MOTDX,LOW);
digitalWrite(VEL_MOT_DX,10);
digitalWrite(IN1_MOTSX,LOW);
digitalWrite(IN2_MOTSX,LOW);
digitalWrite(VEL_MOT_SX,10);
}}
Grazie infinite a tutti voi.

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)









