beleuchteter drache

Fragen oder Tipps & Tricks über Software

Moderatoren: Tim Sasdrich, Sebi

beleuchteter drache

Beitragvon Evo Mc'Neil » 21.10.2011, 13:11

hallo,
eig. wollte ich mich noch nicht mit der controlertechnik befassen, aber da ich meinen vater zjm b-day überraschen wollte, und dies sein Hobby ist, habe ich mich dazu überreden lassen, doch in diese materie mal hinein zuschauen.

da ich einsteiger bin hab ich mir gleich mal die BASCOM demo gezogen, und angefangen damit herumzuspielen, klapp auch schon ganz gut, allerdings bin ich nun ans ende der demo gelangt, und hab noch nix großartiges als n aufwendigeres lauflicht nochnichtmal fertig zu coden bekommen. im video sieht man wo das lauflicht auf der rücktour einfach apruppt stoppt, meine frage ist nun.... wie kann ich das komprimieren? hat da jmd ne idee?

lg evo

hier der code:
Spoiler: show
Code: Alles auswählen

$regfile "m8def.dat"
$crystal = 8000000

Config Portd = Output

Dim Pwbar As Byte
Dim Led0 As Bit
Dim Led1 As Bit
Dim Led2 As Bit
Dim Led3 As Bit
Dim Led4 As Bit
Dim Led5 As Bit
Dim Switcher As Integer
Dim Switcher2 As Byte
Dim Programm As Byte
Dim A As Byte

Pwbar = 0
Led0 = 0
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 0

Switcher = 0
Switcher2 = 0
Programm = 0
A = 0


Do

Incr Pwbar

   If Pwbar > 100 Then
      Pwbar = 0
      Incr Switcher

         If Switcher > 278 Then
            Switcher = 0
            Incr Programm
            If Programm > 3 Then
            Programm = 0
            Exit Do
            End If

         End If

   End If

   If Pwbar < 1 Then Led0 = 1 Else Led0 = 0

   If Pwbar < 5 Then Led1 = 1 Else Led1 = 0

   If Pwbar < 10 Then Led2 = 1 Else Led2 = 0

   If Pwbar < 20 Then Led3 = 1 Else Led3 = 0

   If Pwbar < 50 Then Led4 = 1 Else Led4 = 0

   If Pwbar < 100 Then Led5 = 1 Else Led5 = 0




      If Switcher < 12 Then
         If Led5 = 1 Then Portd = &B11100000
         If Led4 = 1 Then Portd = &B11110000
         If Led3 = 1 Then Portd = &B11110000
         If Led2 = 1 Then Portd = &B11110000
         If Led1 = 1 Then Portd = &B11110000
         If Led0 = 1 Then Portd = &B11110000
      End If

      If Switcher > 12 And Switcher < 24 Then
         If Led5 = 1 Then Portd = &B11100001
         If Led4 = 1 Then Portd = &B11100000
         If Led3 = 1 Then Portd = &B11110000
         If Led2 = 1 Then Portd = &B11110000
         If Led1 = 1 Then Portd = &B11110000
         If Led0 = 1 Then Portd = &B11110000
      End If

      If Switcher > 24 And Switcher < 36 Then
         If Led5 = 1 Then Portd = &B11100010
         If Led4 = 1 Then Portd = &B11100001
         If Led3 = 1 Then Portd = &B11100000
         If Led2 = 1 Then Portd = &B11110000
         If Led1 = 1 Then Portd = &B11110000
         If Led0 = 1 Then Portd = &B11110000
      End If

      If Switcher > 36 And Switcher < 48 Then
         If Led5 = 1 Then Portd = &B11100011
         If Led4 = 1 Then Portd = &B11100010
         If Led3 = 1 Then Portd = &B11100001
         If Led2 = 1 Then Portd = &B11100000
         If Led1 = 1 Then Portd = &B11110000
         If Led0 = 1 Then Portd = &B11110000
      End If

      If Switcher > 48 And Switcher < 60 Then
         If Led5 = 1 Then Portd = &B11100100
         If Led4 = 1 Then Portd = &B11100011
         If Led3 = 1 Then Portd = &B11100010
         If Led2 = 1 Then Portd = &B11100001
         If Led1 = 1 Then Portd = &B11100000
         If Led0 = 1 Then Portd = &B11110000
      End If

      If Switcher > 60 And Switcher < 72 Then
         If Led5 = 1 Then Portd = &B11100101
         If Led4 = 1 Then Portd = &B11100100
         If Led3 = 1 Then Portd = &B11100011
         If Led2 = 1 Then Portd = &B11100010
         If Led1 = 1 Then Portd = &B11100001
         If Led0 = 1 Then Portd = &B11100000
      End If

      If Switcher > 72 And Switcher < 84 Then
         If Led5 = 1 Then Portd = &B11100110
         If Led4 = 1 Then Portd = &B11100101
         If Led3 = 1 Then Portd = &B11100100
         If Led2 = 1 Then Portd = &B11100011
         If Led1 = 1 Then Portd = &B11100010
         If Led0 = 1 Then Portd = &B11100001
      End If

      If Switcher > 84 And Switcher < 96 Then
         If Led5 = 1 Then Portd = &B11100111
         If Led4 = 1 Then Portd = &B11100110
         If Led3 = 1 Then Portd = &B11100101
         If Led2 = 1 Then Portd = &B11100100
         If Led1 = 1 Then Portd = &B11100011
         If Led0 = 1 Then Portd = &B11100010
      End If

      If Switcher > 96 And Switcher < 108 Then
         If Led5 = 1 Then Portd = &B11101000
         If Led4 = 1 Then Portd = &B11100111
         If Led3 = 1 Then Portd = &B11100110
         If Led2 = 1 Then Portd = &B11100101
         If Led1 = 1 Then Portd = &B11100100
         If Led0 = 1 Then Portd = &B11100011
      End If

      If Switcher > 108 And Switcher < 120 Then
         If Led5 = 1 Then Portd = &B11101001
         If Led4 = 1 Then Portd = &B11101000
         If Led3 = 1 Then Portd = &B11100111
         If Led2 = 1 Then Portd = &B11100110
         If Led1 = 1 Then Portd = &B11100101
         If Led0 = 1 Then Portd = &B11100100
      End If

      If Switcher > 120 And Switcher < 132 Then
         If Led5 = 1 Then Portd = &B11101010
         If Led4 = 1 Then Portd = &B11101001
         If Led3 = 1 Then Portd = &B11101000
         If Led2 = 1 Then Portd = &B11100111
         If Led1 = 1 Then Portd = &B11100110
         If Led0 = 1 Then Portd = &B11100101
      End If

      If Switcher > 132 And Switcher < 144 Then
         If Led5 = 1 Then Portd = &B11101011
         If Led4 = 1 Then Portd = &B11101010
         If Led3 = 1 Then Portd = &B11101001
         If Led2 = 1 Then Portd = &B11101000
         If Led1 = 1 Then Portd = &B11100111
         If Led0 = 1 Then Portd = &B11100110
      End If

      If Switcher > 144 And Switcher < 156 Then
         If Led5 = 1 Then Portd = &B11101100
         If Led4 = 1 Then Portd = &B11101011
         If Led3 = 1 Then Portd = &B11101010
         If Led2 = 1 Then Portd = &B11101001
         If Led1 = 1 Then Portd = &B11101000
         If Led0 = 1 Then Portd = &B11100111
      End If

      If Switcher > 156 And Switcher < 168 Then
         If Led5 = 1 Then Portd = &B11101101
         If Led4 = 1 Then Portd = &B11101100
         If Led3 = 1 Then Portd = &B11101011
         If Led2 = 1 Then Portd = &B11101010
         If Led1 = 1 Then Portd = &B11101001
         If Led0 = 1 Then Portd = &B11101000
      End If

      If Switcher > 168 And Switcher < 180 Then
         If Led5 = 1 Then Portd = &B11101110
         If Led4 = 1 Then Portd = &B11101101
         If Led3 = 1 Then Portd = &B11101100
         If Led2 = 1 Then Portd = &B11101011
         If Led1 = 1 Then Portd = &B11101010
         If Led0 = 1 Then Portd = &B11101001
      End If

      If Switcher > 180 And Switcher < 192 Then
         If Led5 = 1 Then Portd = &B11101111
         If Led4 = 1 Then Portd = &B11101110
         If Led3 = 1 Then Portd = &B11101101
         If Led2 = 1 Then Portd = &B11101100
         If Led1 = 1 Then Portd = &B11101011
         If Led0 = 1 Then Portd = &B11101010
      End If

      If Switcher > 192 And Switcher < 204 Then
         If Led5 = 1 Then Portd = &B11101110
         If Led4 = 1 Then Portd = &B11101111
         If Led3 = 1 Then Portd = &B11101110
         If Led2 = 1 Then Portd = &B11101101
         If Led1 = 1 Then Portd = &B11101100
         If Led0 = 1 Then Portd = &B11101011
      End If

      If Switcher > 204 And Switcher < 216 Then
         If Led5 = 1 Then Portd = &B11101101
         If Led4 = 1 Then Portd = &B11101110
         If Led3 = 1 Then Portd = &B11101111
         If Led2 = 1 Then Portd = &B11101110
         If Led1 = 1 Then Portd = &B11101101
         If Led0 = 1 Then Portd = &B11101100
      End If

      If Switcher > 216 And Switcher < 228 Then
         If Led5 = 1 Then Portd = &B11101100
         If Led4 = 1 Then Portd = &B11101101
         If Led3 = 1 Then Portd = &B11101110
         If Led2 = 1 Then Portd = &B11101111
         If Led1 = 1 Then Portd = &B11101110
         If Led0 = 1 Then Portd = &B11101101
      End If

      If Switcher > 228 And Switcher < 240 Then
         If Led5 = 1 Then Portd = &B11101011
         If Led4 = 1 Then Portd = &B11101100
         If Led3 = 1 Then Portd = &B11101101
         If Led2 = 1 Then Portd = &B11101110
         If Led1 = 1 Then Portd = &B11101111
         If Led0 = 1 Then Portd = &B11101110
      End If

      If Switcher > 240 And Switcher < 252 Then
         If Led5 = 1 Then Portd = &B11101010
         If Led4 = 1 Then Portd = &B11101011
         If Led3 = 1 Then Portd = &B11101100
         If Led2 = 1 Then Portd = &B11101101
         If Led1 = 1 Then Portd = &B11101110
         If Led0 = 1 Then Portd = &B11101111
      End If

      If Switcher > 252 And Switcher < 264 Then
         If Led5 = 1 Then Portd = &B11101001
         If Led4 = 1 Then Portd = &B11101010
         If Led3 = 1 Then Portd = &B11101011
         If Led2 = 1 Then Portd = &B11101100
         If Led1 = 1 Then Portd = &B11101101
         If Led0 = 1 Then Portd = &B11101110
      End If

      If Switcher > 264 And Switcher < 278 Then
         If Led5 = 1 Then Portd = &B11101000
         If Led4 = 1 Then Portd = &B11101001
         If Led3 = 1 Then Portd = &B11101010
         If Led2 = 1 Then Portd = &B11101011
         If Led1 = 1 Then Portd = &B11101100
         If Led0 = 1 Then Portd = &B11101101
      End If

      If Switcher > 264 And Switcher < 278 Then
         If Led5 = 1 Then Portd = &B11101000
         If Led4 = 1 Then Portd = &B11101001
         If Led3 = 1 Then Portd = &B11101010
         If Led2 = 1 Then Portd = &B11101011
         If Led1 = 1 Then Portd = &B11101100
         If Led0 = 1 Then Portd = &B11101101
      End If


Loop

hier noch das video:

Benutzeravatar
Evo Mc'Neil
 
Beiträge: 155
Registriert: 08.11.2009, 19:41
Wohnort: Klein Offenseth-Sparrieshoop

Re: beleuchteter drache

Beitragvon derKontor » 21.10.2011, 13:20

Das Video ist nicht verfügbar

Komisch jetzt gehts auch bei mir. :?:
derKontor
 

Re: beleuchteter drache

Beitragvon Evo Mc'Neil » 21.10.2011, 13:38

hmm bei mir funzt es einwandfrei... komisch

ps: nochwas zum bitmuster:

1110 0000

bei der ersten reihe habe ich ein lötfehler aufm board produziert und anstelle von GND habe ich das latch der 4 bit to line decoder auf +5v gelegt, deswegen musste ich das bitmuster dort spiegeln...

die erste reihe steuert die jeweiligen latches der 4 4bit to line decoder an 4tes 3tes 2tes 1tes, und da sie bei binär 0000 anfangen ist das auch die erste LED.

die variabeln led0 bis led5 sind die helligkeits pulsweiten led0= dunkel und led5=hell

die switcher-variable verschiebt das ganze dann jeweils um eine led nach oben
Benutzeravatar
Evo Mc'Neil
 
Beiträge: 155
Registriert: 08.11.2009, 19:41
Wohnort: Klein Offenseth-Sparrieshoop

Re: beleuchteter drache

Beitragvon DerPaddle » 21.10.2011, 17:38

Könntest du eventuell mal einen einfachen Schaltplan zeichnen, wie das ganze nun verdrahtet ist? Mit Beschreibungen kann ich immer so wenig anfangen. :wink:
Son Mist aber auch, dreimal abgeschnitten und immernoch zu kurz. ;)
Meine Homepage ist wieder online unter: http://www.patrick-sawadski.de
Benutzeravatar
DerPaddle
 
Beiträge: 264
Registriert: 06.07.2010, 21:11
Wohnort: Lachendorf, Deutschland

Re: beleuchteter drache

Beitragvon Evo Mc'Neil » 21.10.2011, 22:11

hier ma n bild
Dateianhänge
s plan.JPG
Benutzeravatar
Evo Mc'Neil
 
Beiträge: 155
Registriert: 08.11.2009, 19:41
Wohnort: Klein Offenseth-Sparrieshoop

Re: beleuchteter drache

Beitragvon Evo Mc'Neil » 23.10.2011, 18:05

neues problem...
nun habe ich rote leds und grüne leds an die schaltung angeschlossen... funzt alles soweit auch gut nur..... die roten leuchten so stark das es in den augen weh tut, und die grünen leds nur ganz ganz schwach... beide sind unter einem LED gehäuse zusammen mit blauen led (RGB LEDs) alle haben den gleichen widerstand von 220 ohm, und zwar an der ?katode? also am beinchen zum minuspol... angesteuert werden alle von den 4bit to 16 line decoder, warum sind diese lichtunterschiede so enorm, und vor allem... wie bekomm ich dafür ne leichte lösung hin, ohne nun großartig 100te von widerständen zu verlöten?

ich wäre für eine idee sehr dankbar
Benutzeravatar
Evo Mc'Neil
 
Beiträge: 155
Registriert: 08.11.2009, 19:41
Wohnort: Klein Offenseth-Sparrieshoop

Re: beleuchteter drache

Beitragvon sudden » 23.10.2011, 19:10

Ich schätze du wirst um unterschiedliche Widerstände nicht herumkommen, weil die Flussspannungen so unterschiedlich sind.
Ist bei der RGB-Led eine Kathode für alle Farben ?
Weil dann kommt auch noch das LED's parallel schalten Problem dazu :(
sudden
 

Re: beleuchteter drache

Beitragvon Evo Mc'Neil » 25.10.2011, 02:20

naja ich schalte sie nicht parallel sondern eher mit ATmega8 geschwindigkeit hintereinander

und da auf der verpackung der RGB LEDs drauf steht das diese mit 2,4V - 3,6V angesteuert werden, gehe ich einfach mal frech davon aus, das dort überall der gleiche strom fließen muss, um die gewünschte leuchtkraft zu erhalten...

also muss ich doch eig. einfach nur diese schöne schaltung vom chef hinter die LEDs setzen:
Bild

oder etwa nicht? :| :?:
Benutzeravatar
Evo Mc'Neil
 
Beiträge: 155
Registriert: 08.11.2009, 19:41
Wohnort: Klein Offenseth-Sparrieshoop

Re: beleuchteter drache

Beitragvon Nachthimmel » 25.10.2011, 16:50

Das würde schon gehen, du musst aber darauf achten, dass die LED´s eine gemeinsame Anode haben. Sonst musst du die Schaltung mit PNP´s aufbauen.

Bei konstanter Betriebsspannung würde ich jedoch einen Vorwiderstand verwenden.
Philosoph: Sein oder nicht sein? - Elektroniker: Das ist Wahr.
Benutzeravatar
Nachthimmel
 
Beiträge: 93
Registriert: 06.09.2010, 19:35
Wohnort: Villingen-Schwenningen

Re: beleuchteter drache

Beitragvon alterhase » 25.10.2011, 17:29

Achtung!
Die Schaltung braucht ein wenig Zeit ca.100nS ... 1µs ehe sich der Konstantstrom einstellt. (davor ungebremst) Also nicht zu hoch gehen mit der Frequenzia :wink:

Man sollte aus funktechnischer Sicht sowieso so niedrig wie möglich bleiben. 100Hz ist flink genug 8)
Löten verbindet ...manchmals. :mrgreen:
73 55
alterhase
 
Beiträge: 12050
Registriert: 14.11.2008, 08:58
Wohnort: Wien/Kapfenberg

Re: beleuchteter drache

Beitragvon Evo Mc'Neil » 25.10.2011, 19:16

könnte das denn nicht so wie im anhang funzen? auch unabhängig von der frequenz?
Dateianhänge
schaltung.JPG
Benutzeravatar
Evo Mc'Neil
 
Beiträge: 155
Registriert: 08.11.2009, 19:41
Wohnort: Klein Offenseth-Sparrieshoop

Re: beleuchteter drache

Beitragvon alterhase » 25.10.2011, 19:22

Mit den Transistoren sicher nicht.

Vielleicht denkst du mal die ganze Schaltung durch, machst einen exakten Schaltplan, gibst eine Beschreibung, wie du dir die Funktion vorstellst und dann kann man darüber diskutieren.
Löten verbindet ...manchmals. :mrgreen:
73 55
alterhase
 
Beiträge: 12050
Registriert: 14.11.2008, 08:58
Wohnort: Wien/Kapfenberg

Re: beleuchteter drache

Beitragvon Evo Mc'Neil » 25.10.2011, 19:25

nicht mit npn? müssens pnp sein?
Benutzeravatar
Evo Mc'Neil
 
Beiträge: 155
Registriert: 08.11.2009, 19:41
Wohnort: Klein Offenseth-Sparrieshoop

Re: beleuchteter drache

Beitragvon alterhase » 25.10.2011, 19:26

Evo Mc'Neil hat geschrieben:nicht mit npn? müssens pnp sein?

Du hast weder NPN noch PNP gezeichnet. Dein Transistor muss erst erfunden werden :wink:
Löten verbindet ...manchmals. :mrgreen:
73 55
alterhase
 
Beiträge: 12050
Registriert: 14.11.2008, 08:58
Wohnort: Wien/Kapfenberg

Re: beleuchteter drache

Beitragvon Chef » 25.10.2011, 19:30

Das sind die neuen NPNPNPNP-KanalJMOSFETUJTs ;)

Chef :D
Wenn es die Elektronik nicht gäbe, müsste man sie erfinden.
Benutzeravatar
Chef
Site Admin
 
Beiträge: 2941
Registriert: 04.11.2008, 17:56
Wohnort: Hamburg

Nächste

Zurück zu Software

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron