Ciao ragazzi. Dovrei creare un progetto ma non ne ho la minima idea riguardo la programmazione di arduino. Conosco un po di C ma non so se è utile. Il progetto da programmare è questo. Se non potete produrre il codice mi dareste gentilmente qualche consiglio?
Non avendolo tu ancora fatto, ti chiedo cortesemente di presentarti QUI (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 REGOLAMENTO ...
... poi, qui NON forniamo codice "su richiesta", ma aiutiamo gli utenti a scriverselo da soli, però ... al link che hai messo, c'è chiaramente scritto:
Step 3: Code
If you want the code for this project, you can leave your email in the comments and i will send you it.
Quindi ... metti la tua eMail nei commenti dell'articolo e richiedi il codice.
Guglielmo
Quindi ... metti la tua eMail nei commenti dell'articolo e richiedi il codice.
Poverino, e' 15gg che ci prova.
Secondo me l'autore ha perso lo sketch
Infatti il codice è stato perso. Per programmare da dove dovrei cominciare? Le connessioni dei componenti del tutorial di instructables sono quasi chiare, ora come procedo con il codice?
divertiti
e prova a capirlo, non fare solo copia/incolla , perche' sicuramente vorrai personalizzartelo
#include <Servo.h>
Servo myservo ;
const byte triggerPort = 12;
const byte echoPort = 13;
const byte pin_servo = 9;
void setup() {
myservo.attach(pin_servo);
pinMode(triggerPort, OUTPUT);
pinMode(echoPort, INPUT);
Serial.begin(9600);
}
void loop() {
//abilita il sensore a ultrasuoni
digitalWrite( triggerPort, LOW );
digitalWrite( triggerPort, HIGH );
delayMicroseconds( 10 );
digitalWrite( triggerPort, LOW );
unsigned long durata = pulseIn( echoPort, HIGH, 40000UL ); // legge il sensore
unsigned long distanza = 0.034 * durata / 2; // converte il valore letto in distanza ( cm )
Serial.print(durata);
Serial.print(" ");
Serial.print("distanza: ");
if ( durata == 0 ) {
Serial.println("Fuori portata ");
}
else {
Serial.print(distanza);
Serial.println(" cm ");
}
if (distanza >= 10 && distanza <= 150) { // se l'ostacolo è tra 10 e 150 cm
myservo.write(90); // attiva il servo
delay(1000);
myservo.write(0);
}
else {
myservo.write(0);
}
delay(200);
}
Ciao Brunello, grazie della risposta, ho dei dubbi:
#include <Servo.h> Questa dovrebbe essere l'inclusione della libreria.
Servo myservo ; Questo è qualcosa che riguarda il servo ma non capisco qual è la sua funzione.
const byte triggerPort = 12;
const byte echoPort = 13;
const byte pin_servo = 9;
Questa dovrebbe essere la dichiarazione di variabili.
const sta per costante?
"byte" dovrebbe essere il tipo di variabile.
quei identificatori tipo "triggerPort" sono i nomi delle variabili dati da te?
Se non erro i valori finali indicano a quali porte su arduino corrispondono le variabili.
void setup() {
myservo.attach(pin_servo);
pinMode(triggerPort, OUTPUT);
pinMode(echoPort, INPUT);
Serial.begin(9600);
}
Perchè differenziare "void setup()" da "void loop()"? Intendo che tipo di istruzioni vanno all'interno di essi?
Mi spiegheresti le parole: "attach()", "pinMode()", e "Serial.begin()"?
void loop() {
//abilita il sensore a ultrasuoni
digitalWrite( triggerPort, LOW );
digitalWrite( triggerPort, HIGH );
delayMicroseconds( 10 );
digitalWrite( triggerPort, LOW );
unsigned long durata = pulseIn( echoPort, HIGH, 40000UL ); // legge il sensore
unsigned long distanza = 0.034 * durata / 2; // converte il valore letto in distanza ( cm )
Serial.print(durata);
Serial.print(" ");
Serial.print("distanza: ");
if ( durata == 0 ) {
Serial.println("Fuori portata ");
}
else {
Serial.print(distanza);
Serial.println(" cm ");
}
if (distanza >= 10 && distanza <= 150) { // se l'ostacolo è tra 10 e 150 cm
myservo.write(90); // attiva il servo
delay(1000);
myservo.write(0);
}
else {
myservo.write(0);
}
delay(200);
}
A cosa servono "digitalWrite" e "delayMicroseconds" ?
"unsigned long durata/distanza" sono la creazione di nuove variabili, giusto?
Con il comando Serial.print() cosa faccio praticamente? Credo sia un output video.
Perdonami per le mille domande! Spero che tu mi risponda presto! Grazie in anticipo ![]()
esiste una sola risposta, la seguente
http://forum.arduino.cc/index.php?topic=227707.msg1645472#msg1645472
@lmangione: in conformità al regolamento (... che dovresti aver letto), punto 7, edita (in basso a destra del post, bottone More -> Modify) il tuo post e racchiudi il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra). Grazie.
Guglielmo
Brunello:
esiste una sola risposta, la seguente
Guida arduino PDF per principianti - #2 by gpb01 - Generale - Arduino Forum
Ho questo errore:
exit status 1
stray '\302' in program
Cosa significa?
Ho questo errore:
exit status 1
stray '\302' in program
Non ho capito bene, cosa ti da' quell'errore ?
Comunque questa è una discussione pubblica, quindi non mandatemi continuamente MP.
Il collegamento da fare è il seguente

Controlla sempre dove sono le scritte sul sensore ad ultrasoni
Ciao Brunello, scusa ancora il disturbo. Secondo l'immagine che mi hai postato sotto la mia discussione i collegamenti sono tutti molto facili, però non mi è chiaro molto il collegamento VCC. Praticamente io ho un cavo che collega il pin VCC del servo motore al pin VCC del sensore attraverso la breadboard, poi c'è un altro cavo che collega il VCC del sensore al pin 5 Volt di Arduino. E' giusto?
dovrai pur alimentare il sensore e il servo.
Il Vcc deve andare a tutti e due ( sempre che il servo non lo alimenti in altro modo )
Sì hai ragione ma è esatto il collegamento che ti ho descritto io per l'alimentazione?
certo.
Colleghi il Vcc alla Breadboard e da li' vai al Vcc del servo e al Vcc del sensore
Ho fatto tutti i collegamenti ed ho caricato il programma su Arduino ma non sembra succeda nulla. Con il programma caricato se scollego Arduino appena lo ricollego il servo motore fa un breve scatto di 20 gradi circa e poi non succede più nulla. Gli output definiti con "Serial.print" dove dovrebbero comparire?