Mit Rb_Shift 10 Leds eins weiter schieben und das in 50ms

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Pluto25 wrote:

      Es gibt keinen Index 8, der letzte ist 7 da bei 0 begonnen wird. (Ledzahl - 1 ) wäre die 8. Welche soll weiß werden?
      Verstanden.

      Pluto25 wrote:

      Es ist nicht einfach die Bascom Fehlermeldungen aus zu trixen. Das hast Du drauf
      Irgendeinen Preis muß ich ja erzielen. :D


      Pluto25 wrote:

      PS Ja die Zahl hinter dem Dim ... String besagt wie groß ein String werden darf/wieviel Speicher für ihn reserviert wird.
      ok.

      Michael wrote:

      Es gibt positive Pulse und negative. Mit dem Parameter wählst du sie aus.
      In dem verlinktem Hilfetext steht es beschrieben.
      ok, danke.


      Michael wrote:

      Welchen Wert hat Ledzahl, wenn du deine LEDs auf weiß setzen willst?
      Wie Pluto25 schrieb.

      Ledzahl - 1 also 8 von 0-7
    • So zweite Etape fast geschaft, abgesehen vom lernen :D

      Wenn der Abstand zum HC unter 10cm sind dann gehen alle Leds auf Weiß.
      Wenn der Abstand zum HC über 10cm fällt dann blinken die Leds von links nach rechts und umgekehrt in Rot.

      PRIMA, das geht.

      Hier mal das Ergebniss:

      BASCOM Source Code

      1. $regfile = "m328pdef.dat"
      2. $crystal = 8000000
      3. $hwstack = 40
      4. $swstack = 16
      5. $framesize = 32
      6. '$lib "RAINBOWBSCN.lib"
      7. 'Ein Ausgänge für Sensoren ********************************
      8. Config PORTB.1 = INPUT 'TriggerSignal zum Sensor1
      9. Config PINB.2 = OUTPUT 'Echo Signal vom Sensor1
      10. Config PORTD.5 = INPUT 'TriggerSignal zum Sensor2
      11. Config PIND.6 = OUTPUT 'Echo Signal vom Sensor2
      12. '**********************************************************
      13. Const Ledzahl = 8 ' Anzahl der LEDs
      14. Config Rainbow = 1 , Rb0_len = Ledzahl , Rb0_port = Portb , Rb0_pin = 0
      15. 'Code für Sensor *********************************************************
      16. Dim Zeit1 As Word , Messung1 As Long , Abstand1 As Single
      17. Dim Abstand_s1 As String * 8
      18. Dim Zeit2 As Long , Messung2 As Long , Abstand2 As Single
      19. Dim Abstand_s2 As String * 8
      20. Dim Abstand10cm As String * 2
      21. Abstand10cm = "10" 'PortPin = 1 und zahl 10(49und48)
      22. 'Code für LEDs*************************************************************************
      23. Dim Led_zaehler As Byte 'Zähler Var
      24. Dim Color(3) As Byte 'Farb Var
      25. R Alias Color(_base)
      26. G Alias Color(_base + 1)
      27. B Alias Color(_base + 2)
      28. 'Kanal Auwahl**************************************************************************
      29. Rb_selectchannel 0 'Kanal Auswahl
      30. 'Hauptprogramm beginn******************************************************************
      31. Do
      32. 'Hinderniss Erkennung Berechnen Begin *********************************
      33. Pulseout PORTB , 2 , 600
      34. Pulsein Zeit1 , PINB , 1 , 1
      35. Abstand1 = 0.17325 * Zeit1
      36. Abstand_s1 = Fusing(Abstand1 , "##.##")
      37. 'Hinderniss Erkennung Berechnen Ende *********************************
      38. If Abstand1 >= 10 Then
      39. For Led_zaehler = 0 To Ledzahl - 1
      40. R = 0 : G = 0 : B = 0 'Farbe festlegen
      41. Rb_setcolor Ledzahl - 1 , Color(1) 'Farbe für LED festlegen
      42. Rb_rotateleft 0 , Ledzahl
      43. Rb_send
      44. Next Led_zaehler
      45. For Led_zaehler = 0 To Ledzahl - 7 'Var Led_zaehler 0 ist Start und Ende ist Ledzahl -7
      46. R = 50 : G = 0 : B = 0 'Farbe festlegen
      47. Rb_setcolor Led_zaehler , Color(1) 'Farbe für LED festlegen
      48. Rb_send 'Farbe senden
      49. Waitms 40 'Warte
      50. Next Led_zaehler
      51. For Led_zaehler = 0 To Ledzahl - 1
      52. Rb_rotateright 0 , Ledzahl
      53. Rb_send
      54. Waitms 40
      55. Next Led_zaehler
      56. For Led_zaehler = Ledzahl - 1 To 6 Step - 1
      57. Rb_setcolor Led_zaehler , Color(1)
      58. Rb_send
      59. Waitms 40
      60. Next Led_zaehler
      61. For Led_zaehler = 0 To Ledzahl - 1
      62. Rb_rotateleft 0 , Ledzahl
      63. Rb_send
      64. Waitms 40
      65. Next Led_zaehler
      66. Else
      67. For Led_zaehler = 0 To Ledzahl - 1
      68. R = 50 : G = 50 : B = 50 'Farbe festlegen
      69. Rb_setcolor Ledzahl - 1 , Color(1) 'Farbe für LED festlegen
      70. Rb_rotateleft 0 , Ledzahl
      71. Rb_send
      72. Waitms 40
      73. Next Led_zaehler
      74. End If
      75. Loop
      76. End
      Display All
      Wie man an den Ein- Ausgängen sieht, kommt noch ein weiterer HC zum Einsatz.
      Den wenn die Ausgangsposition zum 2ten HC erreicht wird soll noch was passieren.
      Doch heute Schaff ich das nicht mehr. a_64_3a718cae
    • Kann das so korrekt sein?

      Wasi wrote:

      'Ein Ausgänge für Sensoren ********************************
      Config PORTB.1 = INPUT 'TriggerSignal zum Sensor1
      Config PINB.2 = OUTPUT 'Echo Signal vom Sensor1
      Config PORTD.5 = INPUT 'TriggerSignal zum Sensor2
      Config PIND.6 = OUTPUT 'Echo Signal vom Sensor2
      '**********************************************************
      • Trigger ist am Sensor ein Eingang. Folglich muss der Pin am Controller ein Ausgang sein.

      • Und Echo ist ein Ausgang am Sensor und muss folglich am Controller auf einen Eingang gehen.


      Darf man fragen was das Projekt werden soll?
      Ein kleiner fahrbarer Roboter vielleicht, der Hindernisse erkennt und blinkt (Fahrtrichtung anzeigt)?
      Die Blinker und die Hinderniserkennung deuten darauf hin.
    • Mitch64 wrote:

      Kann das so korrekt sein?

      Wasi wrote:

      'Ein Ausgänge für Sensoren ********************************
      Config PORTB.1 = INPUT 'TriggerSignal zum Sensor1
      Config PINB.2 = OUTPUT 'Echo Signal vom Sensor1
      Config PORTD.5 = INPUT 'TriggerSignal zum Sensor2
      Config PIND.6 = OUTPUT 'Echo Signal vom Sensor2
      '**********************************************************
      • Trigger ist am Sensor ein Eingang. Folglich muss der Pin am Controller ein Ausgang sein.

      • Und Echo ist ein Ausgang am Sensor und muss folglich am Controller auf einen Eingang gehen.


      Darf man fragen was das Projekt werden soll?
      Ein kleiner fahrbarer Roboter vielleicht, der Hindernisse erkennt und blinkt (Fahrtrichtung anzeigt)?
      Die Blinker und die Hinderniserkennung deuten darauf hin.
      Das wird für meine Garage eine visuelle Hilfe und Beleuchtung.
    • Muss mich jetzt mal bei allen bedanken die mich tatkräftig unterstützt haben, auch wenn ich immer wieder auf dem Schlauch stand. :thumbsup:

      Programmiertechnisch bin ich jetzt fertig und es Läuft so wie ich es mir gewünscht habe.

      Wenn HC1 unter 10cm alle LEDs Aus, Wenn HC1 und HC2 über 10cm sollen alle LEDs in Rot durchlaufen, wenn HC2 kleiner 10cm ist gehen alle LEDs An in weiß.
      Das war der Plan.

      Hier mal der Code:

      BASCOM Source Code

      1. ' Garagen Version Blinker mit Rotate WS2812b und Atmega328p Wasi
      2. $regfile = "m328pdef.dat"
      3. $crystal = 8000000
      4. $hwstack = 40
      5. $swstack = 16
      6. $framesize = 32
      7. '$lib "RAINBOWBSCN.lib"
      8. 'Ein Ausgänge für Sensoren ********************************
      9. Config PORTB.1 = INPUT 'TriggerSignal zum Sensor1
      10. Config PINB.2 = OUTPUT 'Echo Signal vom Sensor1
      11. Config PORTD.5 = INPUT 'TriggerSignal zum Sensor2
      12. Config PIND.6 = OUTPUT 'Echo Signal vom Sensor2
      13. '**********************************************************
      14. Const Ledzahl = 8 ' Anzahl der LEDs
      15. Config Rainbow = 1 , Rb0_len = Ledzahl , Rb0_port = Portb , Rb0_pin = 0
      16. 'Code für Sensor *********************************************************
      17. Dim Zeit1 As Word , Messung1 As Long , Abstand1 As Single
      18. Dim Abstand_s1 As String * 8
      19. Dim Zeit2 As Long , Messung2 As Long , Abstand2 As Single
      20. Dim Abstand_s2 As String * 8
      21. Dim Abstand10cm As String * 2
      22. Abstand10cm = "10" 'PortPin = 1 und zahl 10(49und48)
      23. 'Code für LEDs*************************************************************************
      24. Dim Led_zaehler As Byte 'Zähler Var
      25. Dim Color(3) As Byte 'Farb Var
      26. R Alias Color(_base)
      27. G Alias Color(_base + 1)
      28. B Alias Color(_base + 2)
      29. 'Kanal Auswahl**************************************************************************
      30. Rb_selectchannel 0 'Kanal Auswahl
      31. 'Hauptprogramm beginn******************************************************************
      32. Do
      33. 'Hinderniss Erkennung Berechnen von HC1 Begin *********************************
      34. Pulseout PORTB , 2 , 600
      35. Pulsein Zeit1 , PINB , 1 , 1
      36. Abstand1 = 0.17325 * Zeit1
      37. Abstand_s1 = Fusing(Abstand1 , "##.##")
      38. 'Hinderniss Erkennung Berechnen Ende Von HC1 *********************************
      39. 'Hinderniss Erkennung Berechnen von HC2 Begin *********************************
      40. Pulseout PORTD , 6 , 600
      41. Pulsein Zeit2 , PINd , 5 , 1
      42. Abstand2 = 0.17325 * Zeit2
      43. Abstand_s2 = Fusing(Abstand2 , "##.##")
      44. 'Hinderniss Erkennung Berechnen Ende con HC2 *********************************
      45. If Abstand2 >= 10 And Abstand1 <= 10 Then
      46. For Led_zaehler = 0 To Ledzahl - 1 'Alle LEDs Aus
      47. R = 0 : G = 0 : B = 0 'Farbe festlegen
      48. Rb_setcolor Ledzahl - 1 , Color(1) 'Farbe für LED festlegen
      49. Rb_rotateleft 0 , Ledzahl
      50. Rb_send
      51. Next Led_zaehler
      52. Else
      53. If Abstand1 >= 10 And Abstand2 >= 10 Then
      54. For Led_zaehler = 0 To Ledzahl - 1 'Alle LEDs Aus
      55. R = 0 : G = 0 : B = 0 'Farbe festlegen
      56. Rb_setcolor Ledzahl - 1 , Color(1) 'Farbe für LED festlegen
      57. Rb_rotateleft 0 , Ledzahl
      58. Rb_send
      59. Next Led_zaehler
      60. For Led_zaehler = 0 To Ledzahl - 7 'Var Led_zaehler 0 ist Start und Ende ist Ledzahl -7
      61. R = 50 : G = 0 : B = 0 'Farbe festlegen
      62. Rb_setcolor Led_zaehler , Color(1) 'Farbe für LED festlegen
      63. Rb_send 'Farbe senden
      64. Waitms 40 'Warte
      65. Next Led_zaehler
      66. For Led_zaehler = 0 To Ledzahl - 1
      67. Rb_rotateright 0 , Ledzahl
      68. Rb_send
      69. Waitms 40
      70. Next Led_zaehler
      71. For Led_zaehler = Ledzahl - 1 To 6 Step - 1
      72. Rb_setcolor Led_zaehler , Color(1)
      73. Rb_send
      74. Waitms 40
      75. Next Led_zaehler
      76. For Led_zaehler = 0 To Ledzahl - 1
      77. Rb_rotateleft 0 , Ledzahl
      78. Rb_send
      79. Waitms 40
      80. Next Led_zaehler
      81. ElseIf Abstand2 <= 10 And Abstand1 >= 10 Then
      82. For Led_zaehler = 0 To Ledzahl - 1
      83. R = 50 : G = 50 : B = 50 'Farbe festlegen
      84. Rb_setcolor Ledzahl - 1 , Color(1) 'Farbe für LED festlegen
      85. Rb_rotateleft 0 , Ledzahl
      86. Rb_send
      87. Waitms 40
      88. Next Led_zaehler
      89. End If
      90. End If
      91. Loop
      92. End
      Display All
      Und hier mal wie es Funktioniert:
      LEDs
    • Hi Wasi,

      wie Mitch64 bereits geschrieben hat, stimmen die In- und Outputs nicht mit den Kommentaren überein. Im Vergleich mit Deinem Video sind die Konfigurationen korrekt angegeben, es stimmen also lediglich die Kommentare nicht. Das verwirrt nur a_27_b277ca12 (vor allem Anfänger, die sich vielleicht an Deinem Programm orientieren).

      Du solltest sie noch korrigieren in:

      BASCOM Source Code

      1. 'Ein Ausgänge für Sensoren ********************************
      2. Config PORTB.1 = INPUT 'Echo Signal vom Sensor1
      3. Config PINB.2 = OUTPUT 'Trigger Signal zum Sensor1
      4. Config PORTD.5 = INPUT 'Echo Signal vom Sensor2
      5. Config PIND.6 = OUTPUT 'Trigger Signal zum Sensor2
      6. '**********************************************************
      Nette Grüße,
      Robert
    • R2D2 Bastler wrote:

      Hi Wasi,

      wie Mitch64 bereits geschrieben hat, stimmen die In- und Outputs nicht mit den Kommentaren überein. Im Vergleich mit Deinem Video sind die Konfigurationen korrekt angegeben, es stimmen also lediglich die Kommentare nicht. Das verwirrt nur a_27_b277ca12 (vor allem Anfänger, die sich vielleicht an Deinem Programm orientieren).

      Du solltest sie noch korrigieren in:

      BASCOM Source Code

      1. 'Ein Ausgänge für Sensoren ********************************
      2. Config PORTB.1 = INPUT 'Echo Signal vom Sensor1
      3. Config PINB.2 = OUTPUT 'Trigger Signal zum Sensor1
      4. Config PORTD.5 = INPUT 'Echo Signal vom Sensor2
      5. Config PIND.6 = OUTPUT 'Trigger Signal zum Sensor2
      6. '**********************************************************
      Nette Grüße,
      Robert
      Ja, stimmt. a_41_9c830c38
      Danke Mitch64 und R2D2 Bastler :thumbsup:



      Leider Kann ich das vorherige nicht ändern, aber hier nun geändert

      BASCOM Source Code

      1. ' Garagen Version Blinker mit Rotate WS2812b und Atmega328p Wasi
      2. $regfile = "m328pdef.dat"
      3. $crystal = 8000000
      4. $hwstack = 40
      5. $swstack = 16
      6. $framesize = 32
      7. '$lib "RAINBOWBSCN.lib"
      8. 'Ein Ausgänge für Sensoren ********************************
      9. Config PORTB.1 = INPUT 'Echo Signal vom Sensor1
      10. Config PINB.2 = OUTPUT 'TriggerSignal zum Sensor1
      11. Config PORTD.5 = INPUT 'Echo Signal vom Sensor2
      12. Config PIND.6 = OUTPUT 'TriggerSignal zum Sensor2
      13. '**********************************************************
      14. Const Ledzahl = 8 ' Anzahl der LEDs
      15. Config Rainbow = 1 , Rb0_len = Ledzahl , Rb0_port = Portb , Rb0_pin = 0
      16. 'Code für Sensor *********************************************************
      17. Dim Zeit1 As Word , Messung1 As Long , Abstand1 As Single
      18. Dim Abstand_s1 As String * 8
      19. Dim Zeit2 As Long , Messung2 As Long , Abstand2 As Single
      20. Dim Abstand_s2 As String * 8
      21. Dim Abstand10cm As String * 2
      22. Abstand10cm = "10" 'PortPin = 1 und zahl 10(49und48)
      23. 'Code für LEDs*************************************************************************
      24. Dim Led_zaehler As Byte 'Zähler Var
      25. Dim Color(3) As Byte 'Farb Var
      26. R Alias Color(_base)
      27. G Alias Color(_base + 1)
      28. B Alias Color(_base + 2)
      29. 'Kanal Auswahl**************************************************************************
      30. Rb_selectchannel 0 'Kanal Auswahl
      31. 'Hauptprogramm beginn******************************************************************
      32. Do
      33. 'Hinderniss Erkennung Berechnen von HC1 Begin *********************************
      34. Pulseout PORTB , 2 , 600
      35. Pulsein Zeit1 , PINB , 1 , 1
      36. Abstand1 = 0.17325 * Zeit1
      37. Abstand_s1 = Fusing(Abstand1 , "##.##")
      38. 'Hinderniss Erkennung Berechnen Ende Von HC1 *********************************
      39. 'Hinderniss Erkennung Berechnen von HC2 Begin *********************************
      40. Pulseout PORTD , 6 , 600
      41. Pulsein Zeit2 , PINd , 5 , 1
      42. Abstand2 = 0.17325 * Zeit2
      43. Abstand_s2 = Fusing(Abstand2 , "##.##")
      44. 'Hinderniss Erkennung Berechnen Ende con HC2 *********************************
      45. If Abstand2 >= 10 And Abstand1 <= 10 Then
      46. For Led_zaehler = 0 To Ledzahl - 1 'Alle LEDs Aus
      47. R = 0 : G = 0 : B = 0 'Farbe festlegen
      48. Rb_setcolor Ledzahl - 1 , Color(1) 'Farbe für LED festlegen
      49. Rb_rotateleft 0 , Ledzahl
      50. Rb_send
      51. Next Led_zaehler
      52. Else
      53. If Abstand1 >= 10 And Abstand2 >= 10 Then
      54. For Led_zaehler = 0 To Ledzahl - 1 'Alle LEDs Aus
      55. R = 0 : G = 0 : B = 0 'Farbe festlegen
      56. Rb_setcolor Ledzahl - 1 , Color(1) 'Farbe für LED festlegen
      57. Rb_rotateleft 0 , Ledzahl
      58. Rb_send
      59. Next Led_zaehler
      60. For Led_zaehler = 0 To Ledzahl - 7 'Var Led_zaehler 0 ist Start und Ende ist Ledzahl -7
      61. R = 50 : G = 0 : B = 0 'Farbe festlegen
      62. Rb_setcolor Led_zaehler , Color(1) 'Farbe für LED festlegen
      63. Rb_send 'Farbe senden
      64. Waitms 40 'Warte
      65. Next Led_zaehler
      66. For Led_zaehler = 0 To Ledzahl - 1
      67. Rb_rotateright 0 , Ledzahl
      68. Rb_send
      69. Waitms 40
      70. Next Led_zaehler
      71. For Led_zaehler = Ledzahl - 1 To 6 Step - 1
      72. Rb_setcolor Led_zaehler , Color(1)
      73. Rb_send
      74. Waitms 40
      75. Next Led_zaehler
      76. For Led_zaehler = 0 To Ledzahl - 1
      77. Rb_rotateleft 0 , Ledzahl
      78. Rb_send
      79. Waitms 40
      80. Next Led_zaehler
      81. ElseIf Abstand2 <= 10 And Abstand1 >= 10 Then
      82. For Led_zaehler = 0 To Ledzahl - 1
      83. R = 50 : G = 50 : B = 50 'Farbe festlegen
      84. Rb_setcolor Ledzahl - 1 , Color(1) 'Farbe für LED festlegen
      85. Rb_rotateleft 0 , Ledzahl
      86. Rb_send
      87. Waitms 40
      88. Next Led_zaehler
      89. End If
      90. End If
      91. Loop
      92. End
      Display All