Go Down

Topic: (Erledigt) LCD mit HC-SR04 Formel einbinden? (Read 2189 times) previous topic - next topic

Cooool - ich finde die "Antriebsübersetzung per Paketschnur" sehr gelungen  :D
Dum spiro, spero - if you find my posting helpful, please click my Karma :)<br />~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />Do you know A.R.T, the FREE Android Root Tool ?

#31
Nov 09, 2013, 08:42 pm Last Edit: Nov 09, 2013, 09:03 pm by power-dodge Reason: 1
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ß

uwefed


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

#33
Nov 09, 2013, 10:29 pm Last Edit: Nov 09, 2013, 10:43 pm by power-dodge Reason: 1
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!

guntherb

#34
Nov 10, 2013, 01:51 pm Last Edit: Nov 10, 2013, 01:56 pm by guntherb Reason: 1
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.
Grüße
Gunther

#35
Nov 10, 2013, 06:21 pm Last Edit: Nov 10, 2013, 06:28 pm by power-dodge Reason: 1
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  ]:D.

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

Code: [Select]
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ß

guntherb

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

Code: [Select]
int angle = map(distance, 0, 540, 106, 4);
servoMain.write(angle);

macht doch das gleiche, oder?
Grüße
Gunther

michael_x


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"  ;)

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ß

Go Up