![]() |
MySQL-Abfrage(n) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
'***************************** ' ' Test Incrementalgeber mit PWM ' ' Willie 17.07.2017 ' '***************************** ' ' Incrementalgeber A an INT0 (Pin 4) ' Incrementalgeber T an INT1 (Pin 5) ' Incrementalgeber B an PD1 (Pin 3) ' ' Alive-LED an PC0 (Pin 23) = Programmdummy ' PWM-LED an PB1 (Pin 15) = LED dimmbar durch INC-Drehregler ' Toggle-LED an PC1 (Pin 24) = LED umschaltbar durch INC-Taster ' '***************************** ' ' ***** Genutzter Microcontroller, Takt in Hz, Stacks & Framesize $regfile = "m8adef.dat" ' ATMegaA8; Stacks etc.automatisch aus Bascom übernommen $crystal = 8000000 ' ATMegaA8 intern auf 8 MHz eingestellt (Fuse-Bits!) $hwstack = 40 $swstack = 16 $framesize = 32 '***** Variable Dim Incwert As Word ' Wert vom Incrementalgeber Dim C As Word ' Zählvariable '***** Configs & Interrupts Config Int0 = Rising ' Positive Flanke auswerten On Int0 Inc_geber_isr0 ' Interrupt Service Routine0 Config Int1 = Rising ' Positive Flanke auswerten On Int1 Inc_geber_isr1 ' Interrupt Service Routine1 Enable Interrupts ' Master Interrupts einschalten Enable Int0 ' Interrupt 0 einschalten Enable Int1 ' Interrupt 1 einschalten A Alias Pind.2 ' Int0 Incrementalgeber -A- (Pin 4) T Alias Pind.3 ' Int1 Incrementalgeber -T- (Pin 5) B Alias Pind.1 ' PD1 Incrementalgeber -B- (Pin 3) Config Portb.1 = Output ' PWM-LED (Pin 15) Config Portc.0 = Output ' Alive-LED (Pin 23) Config Portc.1 = Output ' Toggle-LED (Pin 24) Led1 Alias Pwm1a ' PWM-LED (Pin 15) Led2 Alias Portc.0 ' Alive-LED (Pin 23) Led3 Alias Portc.1 ' Toggle-LED (Pin 24) ' 16-Bit Timer Config Config Timer1 = Pwm , Pwm = 10 , Prescale = 8 , Compare_a_pwm = Clear_up , Compare_b_pwm = Clear_up '8.000.000/8/1023/2 ~ 489Hz Incwert = 500 ' zu Beginn mittlerer Wert für PWM-LED Led3 = 0 '***** Hauptprogramm Do Led1 = Incwert ' PWM-LED den eingestellten Wert des INC zuweisen C = C + 1 ' Zähler für Programmdummy If C = 30000 Then Toggle Led2 C = 0 End If Loop End '****** Interrupt Service Routine 0 Inc_geber_isr0: If B = 1 Then 'B-Wert LOW während der steigenden A-Flanke = Rechtsdrehung If Incwert < 1023 Then 'Inc-Wert kleiner als Maximalwert = +100 Incwert = Incwert + 100 If Incwert > 1023 Then 'Inc-Wert größer als Maximalwert = 1023 Incwert = 1023 End If End If Else 'B-Wert High während der steigenden A-Flanke = Linksdrehung If Incwert > 100 Then 'Inc-Wert größer als 100 = -100 Incwert = Incwert - 100 If Incwert < 100 Then 'Inc-Wert kleiner als Minimalwert = 0 Incwert = 0 End If End If End If Return '****** Interrupt Service Routine 1 Inc_geber_isr1: Toggle Led3 'Toggle-LED umschalten Return |
![]() |
MySQL-Abfrage(n) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
'############################################################### '* '* Arraytest mit I2C-LCD 20x4 by Willie '* '* Schaltung: '* LCD 20x4, mit I2C-Adapter '* '* Vcc auf +5V (Pin 7) '* GND auf GND (Pin 8) '* 100nF Kerko zwischen Vcc und GND '* 3,6kOhm zwischen PC5 (Pin 28) und Vcc - Pullup für I2C-SCL '* 3,6kOhm zwischen PC1 (Pin 27) und Vcc - Pullup für I2C-SDA '* '* Namen für Menü werden mit lookupstr aus Data-Bereich ausgelesen '* Der Index für lookupstr. ist Null-basierend !!!! '* '* '############################################################### '***** Genutzter Microcontroller, Takt in Hz, Stacks & Framesize $regfile = "m8adef.dat" ' ATMegaA8; Stacks etc.automatisch aus Bascom übernommen $crystal = 8000000 ' ATMegaA8 auf 8 MHz eingestellt (Fuse-Bits!) $hwstack = 40 $swstack = 16 $framesize = 32 '***** I2C & LCD konfigurieren Config Scl = Portc.5 ' I2C Scl (Pin 28) Config Sda = Portc.4 ' I2C Sda (Pin 27) Config Lcd = 20x4 $lib "YwRobot_Lcd_i2c.lib" 'YwRobot Treiber für LCD Const Pcf8574_lcd = 78 'Slave-Adresse des I2C-LCDs 'Pcf8574_lcd = 78 'Pcf8574A_lcd = 126 Dim Lcd_backlight As Byte '1 = an; 0 = aus. Wird erst durch einen LCD-Befehl umgesetzt! Config I2cdelay = 1 '1=1Mhz,5=200Khz,10=100Khz,15=66,66Khz 'Wenn in Lcd keine Anzeige muß der Delaywert erhöht werden.Mit Wert 15 beginnen und dann langsam verringern. Waitms 300 'warte bis Kondensator bei Ta0 geladen, auch für LCD-Init! '***** Variablen Dim Zeile As Byte ' aktueller Menüzeilenwert Dim Titel As Byte ' Arbeitsvariable für Menuetitel Lcd_backlight = 1 ' LCD Backlight einschalten Cls ' LCD leeren/initialisieren und Programmnamen ausgeben Cursor Off Noblink Locate 1 , 1 Lcd "Arraytest" Wait 2 '***** Menü im LCD anzeigen Cls Locate 1 , 1 Lcd "Daten nur anzeigen," Locate 2 , 1 Lcd "wenn vorhanden!" Wait 2 Cls For Zeile = 0 To 30 Locate 1 , 1 Lcd " " Locate 2 , 1 Lcd " " Locate 4 , 1 Lcd "Zeilenzaehler = " Lcd Zeile Lcd " " If Zeile > 10 Then If Zeile < 14 Then Gosub Lcd_anzeige End If If Zeile > 20 Then If Zeile < 24 Then Gosub Lcd_anzeige End If If Zeile > 30 Then If Zeile < 35 Then Gosub Lcd_anzeige End If Wait 1 Next Cls Locate 1 , 1 Lcd "Fertig" Wait 2 End Lcd_anzeige: Titel = Zeile / 10 ' Titel berechnen Locate 1 , 1 Lcd Lookupstr(titel , Data_menue) Locate 2 , 1 Lcd Lookupstr(zeile , Data_menue) Return data_menue: Data "" , "Menue 1" , "Menue 2" , "Menue 3" , "" , "" , "" , "" , "" , "" , "" Data "Menuepunkt1.1", "Menuepunkt1.2","Menuepunkt1.3", "", "", "", "", "", "", "" Data "Menuepunkt2.1", "Menuepunkt2.2","Menuepunkt2.3", "", "", "", "", "", "", "" Data "Menuepunkt3.1" , "Menuepunkt3.2" , "Menuepunkt3.3" , "" , "" , "" , "" , "" , "" , "" |
Weil bei mir jegliche Beleuchtung bis jetzt auf 9v läuft. Dafür habe ich Unmengen an Widerständen für einzelne LEDs. Klar ist jetzt nicht das Problem andere passende Widerstände zu kaufen, muss aber nicht unbedingt sein.
Zitat
Wie kommst Du auf 9 V?
Stripes sind auf 12 V ausgelegt und ein guter Warpblitz wird die wohl auch brauchen... 12 V blau + kaltweiß in der Gondel.
1 Besucher
Blinker, Blitzer, led, Mikrocontroller, Schrittmotor, Sensor, Servo, Sound, Soundmodul
Forensoftware: Burning Board®, entwickelt von WoltLab® GmbH