Buonasera a tutti,
non riesco a capire come far funzionare più di un sensore IR FC-51.
Io ho bisogno di collegare 5 sensori IR FC-51 e quando ho un' ostacolo mi si attivi l'uscita.
Esempio:
ostacolo sensore su pin 1 mi attiva l' uscita 1
ostacolo sensore su pin 2 mi attiva l' uscita 2
ostacolo sensore su pin 3 mi attiva l' uscita 3
e via dicendo.
Ho utilizzato il seguente programma ma non riesco a far andare altri ingressi/uscite:
#define IR 2
int detection = HIGH; // no obstacle
void setup() {
Serial.begin(9600);
pinMode(IR, INPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
detection = digitalRead(IR);
if(detection == LOW){
digitalWrite(LED_BUILTIN, HIGH);
Serial.print("There is an obstacle!\n");
}
else{
digitalWrite(LED_BUILTIN, LOW);
Serial.print("No obstacle!\n");
}
delay(50); // in ms
}
Ma quello che hai postato funziona con una sola entrata, basta che ne metti tre: definisci tre IR diversi con il numero dei pin e nel loop ne controlli uno alla volta.
>Madmax87, Zuilor98: dato che NON lo avete ancora fatto, nel rispetto del regolamento, vi chiedo di presentarviQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.
Madmax87: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More -> Modify) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).
gpb01: >Madmax87, Zuilor98: dato che NON lo avete ancora fatto, nel rispetto del regolamento, vi chiedo di presentarviQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.
Guglielmo
gpb01:
Madmax87: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More -> Modify) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).
Guglielmo
Grazie Guglielmo,
Ho eseguito la presentazione e aggiunto il codice nella apposita "casella".
Sono riuscito anche a comandare due uscite diverse con due IR:
// IR FC-51 Rilevatore di ostacoli
int LED = 13; // Digital Output Pin
int LED1 = 12; // Digital Output Pin
int isObstaclePin = 7; // Digital Input Pin
int isObstaclePin1 = 3; // Digital Input Pin
int isObstacle = HIGH;
int isObstacle1 = HIGH;
void setup() {
pinMode(LED, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(isObstaclePin, INPUT);
pinMode(isObstaclePin1, INPUT);
Serial.begin(9600);
}
void loop()
{
isObstacle = digitalRead(isObstaclePin);
isObstacle1 = digitalRead(isObstaclePin1);
if (isObstacle == LOW)
{
Serial.println("OBSTACLE!!, OBSTACLE!!");
digitalWrite(LED, HIGH);
}
else
{
Serial.println("Clear Obstacle 1");
digitalWrite(LED, LOW);
}
if
(isObstacle1 == LOW)
{
Serial.println("OBSTACLE!!, OBSTACLE!!");
digitalWrite(LED1, HIGH);
}
else
{
Serial.println("Clear Obstacle 2");
digitalWrite(LED1, LOW);
}
delay(500);
}
Volevo chiedere anche se è possibile effettuare una scorciatoia del codice che ho scritto, nel senso fare solo un ciclo if-else.