Pages: 1 2 [3]   Go Down
Author Topic: (Erledigt) LCD mit HC-SR04 Formel einbinden?  (Read 1779 times)
0 Members and 1 Guest are viewing this topic.
DE
Offline Offline
God Member
*****
Karma: 21
Posts: 710
| Germany | NRW |
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cooool - ich finde die "Antriebsübersetzung per Paketschnur" sehr gelungen  smiley-grin
Logged

Dum spiro, spero - if you find my posting helpful, please click my Karma smiley
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Do you know A.R.T

Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja ne...

Und das Rädchin ist vom Baumarkt, das ist so eine Rolle fürd irgendwo drunter
schrauben. Und das Band wird an dem Laser mit einer Schlauschelle befestigt...

Edit: Das letzte Beispiel funktioniert tadellos.

Danke auch dafür!

Gruß
« Last Edit: November 09, 2013, 03:03:08 pm by power-dodge » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21871
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

bei 200 passiert erst mal nichts. Dies ist noch ein Test ;-)
Das kann ich ja alles belibt ändern, nur das mit dem Display noch und alles ist fertig  smiley-yell

Und wie muss ich das machen mit dem Display?
Irgendwie blicke ich da nicht ganz durch, sorry
Das ist eine Fehlerquelle erster Sahne. Die Idee "im Moment gehts gut so, das werde ich später ändern" hat zur Folge daß der Fehler bis zum Schluß überlebt.
Gewöhne Dir nicht diesen schlechten Programmierstil an. Ein Wert einer Variablen die von 0 bis 200 geht darf nirgens eine undefinierten Zustand haben.

Bist Du sicher daß das
Quote
Irgendwie reagiert es nicht sofort, manchmal auch verzögert.
Nicht genau diesen Grund hat?

Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ja das kann schon sein. Hab es jetzt alles geändert gehabt.
"Totewinkel" habe ich aber keine mehr.  

Ich muss später sowieso auf anderer Stelle alles passend umstellen und programieren.

Danke trotzdem für die guten Tipps, das ist übrigens mein Erstes Projekt und
mein erster Programmier versuch. Daher vielleicht waren meine Fragen in euren Augen
etwas "dämlich"

Der nutzer "guntherb" hat mir aber trotzdem unter die Arme geriffen und alles ausführich
erklert. Danke dir noch mal an dieser Stelle!!! War echt nett von dir!

Natürlcih auch ein dickes danke schön an alle andere!
« Last Edit: November 09, 2013, 04:43:05 pm by power-dodge » Logged

Online Online
Edison Member
*
Karma: 39
Posts: 1176
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bitte, gerne geschehen!
auch ich habe hier schon viel Hilfe bekommen.

Was mit aber trotzdem noch interessieren würde:
Was genau ist der tiefere Sinn dieser Maschine?????



edit: wegen deiner Versorgungsprobleme: Es sieht so aus, wie wenn deine Netzteile zu schwach wären um den Strom für das Servo zu liefern. Das Netzteil sollte min. 500mA, besser 1A können.
« Last Edit: November 10, 2013, 07:56:08 am by guntherb » Logged

Grüße
Gunther

Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

klar kannst du gerne wissen. Es ist für die Arbeit gedacht.
Da mache ich mal damit Verbesserungsvorschlag um Matterial zu sparen...
Nur darf ich leider nichts über die Maschienen etc. erzählen, Industriespionage
oder wie nennt sich das.

Wenn es fuktioniert, wird es der Firma Matterialkosten ersparen etc.

Mal sehen, nicht das die mich mit dem Teil verhauen  smiley-twist.

Hab den Code jetzt etwas mehr erweitert (mehr "feingefühl"):

Code:
if (distance >=0 && distance <= 10){
     servoMain.write(106);
     }
  if (distance >=10 && distance <= 20){
  servoMain.write(104);
     } 
  if (distance >=20 && distance <= 30){
     servoMain.write(102);
     }
  if (distance >=30 && distance <= 40){
  servoMain.write(100);
     }
  if (distance >=40 && distance <= 50){
     servoMain.write(98);
     }
  if (distance >=50 && distance <= 60){
  servoMain.write(96);
     } 
  if (distance >=60 && distance <= 70){
     servoMain.write(94);
     }
  if (distance >=70 && distance <= 80){
  servoMain.write(92);
     }
  if (distance >=80 && distance <= 90){
     servoMain.write(90);
     }
  if (distance >=90 && distance <= 100){
  servoMain.write(88);
     } 
  if (distance >=100 && distance <= 110){
     servoMain.write(86);
     }
  if (distance >=110 && distance <= 120){
  servoMain.write(84);
     }
  if (distance >=120 && distance <= 130){
     servoMain.write(82);
     }
  if (distance >=130 && distance <= 140){
  servoMain.write(80);
     } 
  if (distance >=140 && distance <= 150){
     servoMain.write(78);
     }
  if (distance >=150 && distance <= 160){
     servoMain.write(76);
     }
  if (distance >=160 && distance <= 170){
  servoMain.write(74);
     } 
  if (distance >=170 && distance <= 180){
     servoMain.write(72);
     }
  if (distance >=180 && distance <= 190){
  servoMain.write(70);
     }
  if (distance >=190 && distance <= 200){
     servoMain.write(68);
     }
  if (distance >=200 && distance <= 210){
  servoMain.write(66);
     } 
  if (distance >=210 && distance <= 220){
     servoMain.write(64);
     }
  if (distance >=220 && distance <= 230){
  servoMain.write(62);
     }
  if (distance >=230 && distance <= 240){
     servoMain.write(60);
     }
  if (distance >=240 && distance <= 250){
  servoMain.write(58);
     } 
  if (distance >=250 && distance <= 260){
     servoMain.write(56);
     }
  if (distance >=260 && distance <= 270){
  servoMain.write(54);
     }
  if (distance >=270 && distance <= 280){
     servoMain.write(52);
     }
  if (distance >=280 && distance <= 290){
  servoMain.write(50);
     } 
  if (distance >=290 && distance <= 300){
     servoMain.write(48);
     }
  if (distance >=300 && distance <= 310){
     servoMain.write(46);
     }
  if (distance >=310 && distance <= 320){
  servoMain.write(44);
     } 
  if (distance >=320 && distance <= 330){
     servoMain.write(42);
     }
  if (distance >=330 && distance <= 340){
  servoMain.write(40);
     }
  if (distance >=340 && distance <= 350){
     servoMain.write(38);
     }
  if (distance >=350 && distance <= 360){
  servoMain.write(36);
     } 
  if (distance >=360 && distance <= 370){
     servoMain.write(34);
     }
  if (distance >=370 && distance <= 380){
  servoMain.write(32);
     }
  if (distance >=380 && distance <= 390){
     servoMain.write(30);
     }
  if (distance >=390 && distance <= 400){
  servoMain.write(28);
     } 
  if (distance >=400 && distance <= 410){
     servoMain.write(26);
     }
  if (distance >=410 && distance <= 420){
  servoMain.write(24);
     }
  if (distance >=420 && distance <= 430){
     servoMain.write(22);
     }
  if (distance >=430 && distance <= 440){
  servoMain.write(20);
     } 
  if (distance >=440 && distance <= 450){
     servoMain.write(18);
     }
  if (distance >=450 && distance <= 460){
     servoMain.write(16);
     }
  if (distance >=460 && distance <= 470){
  servoMain.write(14);
     } 
  if (distance >=470 && distance <= 480){
     servoMain.write(12);
     }
  if (distance >=480 && distance <= 490){
  servoMain.write(10);
     }
  if (distance >=490 && distance <= 500){
     servoMain.write(8);
     }
  if (distance >=500 && distance <= 510){
  servoMain.write(6);
     } 
  if (distance >=510 && distance <= 520){
     servoMain.write(4);
     }

Danke dir noch mal.

Gruß
« Last Edit: November 10, 2013, 12:28:10 pm by power-dodge » Logged

Online Online
Edison Member
*
Karma: 39
Posts: 1176
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Möchtest du anstelle der unendlich vielen IFs nicht lieber die Funktion map() verwenden?

Code:
int angle = map(distance, 0, 540, 106, 4);
servoMain.write(angle);
macht doch das gleiche, oder?
Logged

Grüße
Gunther

Germany
Offline Offline
Faraday Member
**
Karma: 59
Posts: 3071
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Möchtest du anstelle der unendlich vielen IFs nicht lieber die Funktion map() verwenden?
macht doch das gleiche, oder?
Fast.
Gunther's Vorschlag hat "Maximales Feingefühl"  smiley-wink
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

wenn die größe des kleines Rades genau so groß wäre wie des Laser´s.
Dann würde es funktionieren...

Das kleine Rädchen dreht sich mehr wie das größere. Es war nur zum testen gedacht.
Funktioniert bis jetzt ganz gut.
Später wenn erforderlich ist muss ich alles noch anpassen, dann müssten sich die Werte von
einander trennen in etwa so:

200mm = 20°
210mm = 22°
220mm = 25°
230mm = 28°
(Außer man könnte eine prozentuelle Steigerung einbinden oder so)

viellecht so ähnlich... Aber als Beispiel funktieoniert es noch einwandfrei.

Gruß
Logged

Pages: 1 2 [3]   Go Up
Jump to: