Du kannst keine neue Antwort schreiben


Autor Thema 
BioHazard

Epoxy-Meister

BioHazard

Registriert seit: Feb 2010

Wohnort: 44309 Dortmund

Verein: AGM, TRA L2 #13473, §27

Beiträge: 301

Status: Offline

Beitrag 7633465 , RC Blitzer mit Arduino [Alter Beitrag15. Dezember 2014 um 21:55]

[Melden] Profil von BioHazard anzeigen    BioHazard eine private Nachricht schicken   BioHazard besitzt keine Homepage    Mehr Beiträge von BioHazard finden

Hallo Jungs!

Ich quäle mich gerade mit meinem Arduino. Für unsere RC Drift Strecke möchte ich einen RC Blitzer bauen, der über einen Ultraschallsensor HC-SR04 ausgelöst wird.
Der Blitz soll durch eine High Power LED ausgelöst werden, die mit einem MOSFET geschaltet wird.

Die LED soll ausgelöst werden, wenn der Abstand zum Sensor unter 10 cm beträgt.
Ich habe schon die NewPing Lib. runtergeladen und aus schon in die IDE übernommen.

Und nun hänge ich hier. Im Internet finden sich so viele Beispiele wie man den Code anfängt.

Die einen beginnen mit:

int ...

die anderen wiederum mit:

#define

Ich weiss zwar wie ich eine LED ansteuere oder wie ich den Messabstand ändere, aber nun habe ich hier das Problem diese beiden Codes zu einem zusammen zu fügen.

Ich bin erst so weit:

// RC Blitzer
// Die LED soll als Blitzlich funktionieren wenn der Abstand von 10 cm unterschritten wird

int TriggerPin = 5; // Trigger Pin HR SC 04
int EchoPin = 6; // Echo Pin HR SC 04
int led = 13; // LED für Blitzer

void setup ()
{
pinMode(led, OUTPUT);
pinMode(
}

void loop ()
{


}


Ich weiß nun nicht mehr weiter. Wie soll ich die Pins definieren? INT oder #define?
Wie lese ich den Pins aus, der das Echosignal auffängt?

Stehe gerade mächtig aufm Schlauch.

Ich hoffe ihr könnt mit helfen und den Code mit mir zusammen erstellen. Ich habe schon einige Beispiele gemacht, aber hier ist es als würde ich nichts kennenfrown

Neun von zehn Stimmen in meinem Kopf sagen ich bin nicht verrückt.
Die andere summt die Melodie von Tetris.
schmidi093

Epoxy-Meister

schmidi093

Registriert seit: Apr 2009

Wohnort:

Verein: Solaris RMB, AGM

Beiträge: 430

Status: Offline

Beitrag 7633466 [Alter Beitrag15. Dezember 2014 um 23:52]

[Melden] Profil von schmidi093 anzeigen    schmidi093 eine private Nachricht schicken   schmidi093 besitzt keine Homepage    Mehr Beiträge von schmidi093 finden

Hi,

#define
ist eine Compiler Direktive und besteht immer aus: #define bezeichner ersatz. Der Präprozessor des Compilers läuft über deinen Code drüber und ersetzt jedes Vorkommen von bezeichner mit ersatz.
Das bedeutet:

#define led 1
pinMode(led,OUTPUT);


wird zu / ist das selbe wie

pinMode(1,OUTPUT);


int ist ein Typ, genauer eine, im Fall des Arduinos, 16 bit Ganzzahl.
int i = 1; deklariert eine Variable mit dem Namen led, dem Typ int und dem Wert 1. Die Variable wird im Arbeitsspeicher deines Prozessors abgelegt.
Eine so deklarierte Variable kannst du an anderer Stelle im Programm durch eine erneute Zuweisung ändern.

Es gibt noch eine dritte Möglichkeit eine Konstante zu deklarieren: static const int led = 1;. Auf die Feinheiten dieser Variante einzugehen würde aber jetzt zu weit gehen. Ich empfehle hierzu ein Buch über C/C++ zu lesen.

Für den Anfang würde ich dir #define empfehlen. Das klappt immer (C oder C++) und verbraucht kein Platz im Ram.

VG
Thomas

Geändert von schmidi093 am 15. Dezember 2014 um 23:53

[Zurück zum Anfang]
Du kannst keine neue Antwort schreiben