Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück

Foren Suche

  • 8-stellige 7-Segment mit der 08M2Datum08.03.2019 18:59
    Thema von BoomBoomMagic im Forum Basic's

    ( für Harry02 )

    Ich habe ja bereits viele Möglichkeiten aufgezeigt , wie man eine oder mehrere 7-Segmentanzeigen mit einer Picaxe 08M2 steuern könnte.
    Hier jetzt mal mit einem MAX7219.

    Der MAX7219 ist ein Treiber-IC für ein 8x8 Matrix Modul oder für eine 8-stellige 7-Segmentanzeige.

    Ich habe dieses IC jetzt einmal so konfiguriert , das man eine 8-stellige 7-Segmentanzeige damit steuern kann.
    Als Beispiel habe ich einen (Spaß)Code geschrieben , der den Dezimalpunkt wandern läßt um zu zeigen das jeder Punkt wahlweise aktiviert werden kann.
    Dann noch einen "Hilferuf" von der Anzeige und schließlich zählen alle Segmente einmal von 0 bis 9.


    Das sieht dann so aus ......




    Schaltplan :




    Und hier noch der Code dazu :

    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
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    570
    571
    572
    573
    574
    575
    576
    577
    578
    579
    580
    581
    582
    583
    584
    585
    586
    587
    588
    589
    590
    591
    592
    593
    594
    595
    596
    597
    598
    599
    600
    601
    602
    603
    604
    605
    606
    607
    608
    609
    610
    611
    612
    613
    614
    615
    616
    617
    618
    619
    620
    621
    622
    623
    624
    625
    626
    627
    628
    629
    630
    631
    632
    633
    634
    635
    636
    637
    638
    639
    640
    641
    642
    643
    644
    645
    646
    647
    648
    649
    650
    651
    652
    653
    654
    655
    656
    657
    658
    659
    660
    661
    662
    663
    664
    665
    666
    667
    668
    669
    670
    671
    672
    673
    674
    675
    676
    677
    678
    679
    680
    681
    682
    683
    684
    685
    686
    687
    688
    689
    690
    691
    692
    693
    694
    695
    696
    697
    698
    699
    700
    701
    702
    703
    704
    705
    706
    707
    708
    709
    710
    711
    712
    713
    714
    715
    716
    717
    718
    719
    720
    721
    722
    723
    724
    725
    726
    727
    728
    729
    730
    731
    732
    733
    734
    735
    736
    737
    738
    739
    740
    741
    742
    743
    744
     

     
    #picaxe 08M2
     
    let dirsc=%11110111
     
    symbol Adresse = b0
    symbol Data_ = b1
     

     
    high c.4
    pause 1000
     
    gosub Init_Max
     
    gosub Blank
    pause 500
     

     
    do
     
    gosub Intro

    '---------------------

    'DIGIT1 zählt von 0-9
    for b26=0 to 9
    Data_=b26
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    Data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    next b26

    '--------------------

    'DIGIT2 zählt von 0-9
    for b26=0 to 9
    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=b26
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    Data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    next b26

    '--------------------

    'DIGIT3 zählt von 0-9
    for b26=0 to 9
    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=b26
    Adresse=3
    Gosub Send_max
     
    Data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    next b26

    '--------------------

    'DIGIT4 zählt von 0-9
    for b26=0 to 9
    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=b26
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    next b26

    '--------------------

    'DIGIT5 zählt von 0-9
    for b26=0 to 9
    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=b26
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    next b26

    '--------------------

    'DIGIT6 zählt von 0-9
    for b26=0 to 9
    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=b26
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    next b26

    '--------------------

    'DIGIT7 zählt von 0-9
    for b26=0 to 9
    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=b26
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    next b26

    '###########################

    ' Doppelpunkt wandern lassen (Doppelpunkt [128] + Blank [15] = 143 )
    for b26=1 to 4

    Data_=143
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    '----------------

    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=143
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    '----------------


    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=143
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    '----------------

    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=143
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    '----------------

    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=143
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    '----------------

    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=143
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    '----------------

    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=143
    Adresse=7
    Gosub Send_max
     
    Data_=15
    Adresse=8
    Gosub Send_max
     
    pause 5
    '----------------

    Data_=15
    Adresse=1
    Gosub Send_max
     
    Data_=15
    Adresse=2
    Gosub Send_max
     
    Data_=15
    Adresse=3
    Gosub Send_max
     
    data_=15
    Adresse=4
    Gosub Send_max
     
    Data_=15
    Adresse=5
    Gosub Send_max
     
    Data_=15
    Adresse=6
    Gosub Send_max
     
    Data_=15
    Adresse=7
    Gosub Send_max
     
    Data_=143
    Adresse=8
    Gosub Send_max
     
    pause 5
    '----------------
    next b26
     
    loop
     

     

    end
     
    '#########################################################
     
    Init_Max:
     
    Adresse = 12 : Data_ = 0 ' Shutdown On
    Gosub Send_max
     
    Adresse = 9 : Data_ = 255 ' Decode "B" hier wird eingestellt das wir eine 7-Segmentanzeige nutzen wollen
    Gosub Send_max
     
    Adresse = 10 : Data_ = 8 ' Helligkeit voll
    Gosub Send_max
     
    Adresse = 11 : Data_ = 7 ' Anzahl Digits 8
    Gosub Send_max
     
    Adresse = 15 : Data_ = 0 ' Test Off
    Gosub Send_max
     
    Adresse = 12 : Data_ = 1 ' Shutdown Off
    Gosub Send_max
     

    return
     

     

    Send_Max:
     
    high c.4
    low c.2
    low c.1

    'C.1= Data / C.2 = Clock
    pinc.1=bit7
    pulsout c.2,1
    '--------------
    pinc.1=bit6
    pulsout c.2,1
    '--------------
    pinc.1=bit5
    pulsout c.2,1
    '--------------
    pinc.1=bit4
    pulsout c.2,1
    '--------------
    pinc.1=bit3
    pulsout c.2,1
    '--------------
    pinc.1=bit2
    pulsout c.2,1
    '--------------
    pinc.1=bit1
    pulsout c.2,1
    '--------------
    pinc.1=bit0
    pulsout c.2,1
    '--------------
     


    'C.1= Data / C.2 = Clock
    pinc.1=bit15
    pulsout c.2,1
    '--------------
    pinc.1=bit14
    pulsout c.2,1
    '--------------
    pinc.1=bit13
    pulsout c.2,1
    '--------------
    pinc.1=bit12
    pulsout c.2,1
    '--------------
    pinc.1=bit11
    pulsout c.2,1
    '--------------
    pinc.1=bit10
    pulsout c.2,1
    '--------------
    pinc.1=bit9
    pulsout c.2,1
    '--------------
    pinc.1=bit8
    pulsout c.2,1
    '--------------
     
    low c.4
     
    return
     

    Blank:
     
    Data_=15
    for b25=1 to 8

    Adresse=b25
    gosub Send_max

    next b25
     
    return
     

     
    Intro:
     
    for b26=1 to 4
     
    Adresse=1
    Data_=15
    gosub Send_max

     
    Adresse=2
    Data_=12
    gosub Send_max
     
    Adresse=3
    Data_=11
    gosub Send_max
     
    Adresse=4
    Data_=13
    gosub Send_max
     
    Adresse=5
    Data_=14
    gosub Send_max
     
    Adresse=6
    Data_=15
    gosub Send_max
     
    Adresse=7
    Data_=15
    gosub Send_max
     
    Adresse=8
    Data_=15
    gosub Send_max
     
    pause 800

    gosub Blank
    pause 300

    next b26
    return
     
     

  • 4-stellige 7-Segment mit der PicaxeDatum07.03.2019 23:05

    Also eigentlich ist das Ganze doch recht einfach ...

    Der TM1637 benutzt andere Werte für die Zahlen von 0 - 9


    0 = 63
    1 = 6
    2 = 91
    3 = 79
    4 = 102
    5 = 109
    6 = 125
    7 = 7
    8 = 127
    9 = 111

    Die einfaschste Methode schnell an diese Werte zu kommen ist es , diese vorher ins EEPROm zu speichern.
    Und zwar genau an der Stelle , für die sie äquivalent für die "normalen" Zahlen stehen.
    Also packen wir den Wert : 63 für die Zahl 0 , an die Position 0 im EEPROM.
    Den Wert : 6 für die Zahl 1 , an die Position 1 im EEPROM.
    Den Wert : 91 für die Zahl 2 , an die Position 2 im EEPROM.
    usw.
    usw.

    In der Hauptschleife wird ja lediglich von 1000 bis 9999 gezählt.
    D3 ermittelt wieviel tausender es aktuell gibt ...
    D2 ermittelt wieviel hunderter es aktuell gibt ...
    D1 ermittelt wieviel zehner es aktuell gibt ....
    D0 ermittelt wieviel einer es aktuell gibt ....

    Wenn's los geht , also bei der Zahl : 1000 wären das dann
    D3 = 1
    D2 = 0
    D1 = 0
    D0 = 0

    Die Prozedur SDISPLAY schickt als erstes ein Kommando zum TM1637 das nach jedem gesendetem Wert
    die Anzeige ein Modul weiter springen soll.
    Dann folgt das Kommando , das ganz links begonnen werden soll.

    Jetzt holen wir mittels dem Befehl : READ
    an Hand der ermittelten Zahl das äquivalent an Wert aus dem EEPROM.
    Senden nacheinander D3 ... D2 ... D1 .... D0

    Die Prozeduren : Start , Stop , ACK sind spezielle Befehle des Protokolls: I²C die jedes I²C Gerät benötigt.

    Nachdem also der äquivalente Wert aus dem EEPROm geholt wurde , wird dieser durch die Prozedur : I2CWbyte
    an den TM1637 geschickt , wobei hier das ganze bitweise erfolgt.
    mal so gaaaaaanz salopp gesagt : im "Morsecode"

    Im Grunde muß die Hauptschleife lediglich die 4 Variablen . D3 , D2 , D1 , D0 "füttern" und am Ende mittels SDISPLAY
    zur Anzeige gebracht werden.

  • 4-stellige 7-Segment mit der PicaxeDatum07.03.2019 22:44

    Hallo harry ,

    dieser Chip: TM1637 ist leider nicht ausgelegt um kaskadiert zu werden .
    Wenn Du 8 Stk 7-Segment Module nutzen möchtest , würde ich den Chip: MAX7219 empfehlen.
    Dessen Programmierung ist im Grunde genauso einfach.

  • 4-stellige 7-Segment mit der PicaxeDatum02.03.2019 14:39
    Thema von BoomBoomMagic im Forum Basic's

    Ich habe ja schon die ein oder andere Möglichkeit hier aufgezeigt , wie man eine 7 Segmentanzeige mit der Picaxe benutzen kann.

    Heute stelle ich mal das Modul : TM1637 vor , mit dem es unheimlich einfach ist , eine 4-stellige 7-Segmentanzeige anzusteuern.



    Diese Module gibt es in verschiedenen Anzeigefarben ( weiss , blau , gelb , grün , rot ) und bei Ebay von 1€ (aus China) bis 5€ aus Deutschland.



    Benötigt werden lediglich 4 Anschlüsse : 5V+ , GND , Clock , Data
    Die Module arbeiten auf I²C Basis.
    Da aber die Picaxe das nicht wirklich kann , ist das auch nicht weiter schlimm , das werden wir dann einfach software seitig erledigen.

    Die Einsatzmöglichkeiten sind vielfältig
    - Uhrenmodul
    - Temperaturenanzeige
    - Spannungsanzeige
    ect.


    Ich habe mal einen Beispielcode geschreiben , der lediglich eine Zähler von 1000 bis 9999 hoch zählt.

    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
    125
    126
    127
    128
     

    #picaxe 08m2
     

    ;( 0 1 2 3 4 5 6 7 8 9 A b C d E F Strich leer)
    DATA 0,($3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f,$77,$7c,$39,$5e,$79,$71, $40, $00)
     

     
    symbol dio = c.1
    symbol clk = c.2
    symbol D3 = b2 ' Variable für Ziffer 1 / 1.Segment
    symbol D2 = b3 ' Variable für Ziffer 2 / 2.Segment
    symbol D1 = b4 ' Variable für Ziffer 3 / 3.Segment
    symbol D0 = b5 ' Variable für Ziffer 4 / 4.Segment
    symbol Zaehler = w10
    symbol Zaehler2 = w11
    symbol Dummy = w12
     

    gosub brightness
     

    do
     
    'Beispiel :
    ' Zähler zählt von 1000 bis 9999 hoch ....
     

    for w10 = 1000 to 9999
    w11=w10

    ' Tauender ( 1. Stelle)
    d3=w11/1000
    dummy=d3*1000
    w11=w11-dummy
    '------------
    ' Hunderter ( 2. Stelle)
    d2=w11/100
    dummy=d2*100
    w11=w11-dummy
    '------------
    ' Zehner ( 3. Stelle)
    d1=w11/10
    dummy=d1*10
    '------------
    ' Einer ( 4. Stelle)
    d0=w11-dummy

    gosub SDISPLAY
    pause 1

    next w10
     

    loop
    end
     
    ;===========================================================================
     

     
    SDISPLAY:
    ;aktivieren des autom. weiterspringen zum nächsten Segment
    call i2CStart
    b0 = $40
    call i2CWrByte
    call i2CStop

    ;springe zum ersten (ganz links ) Segement
    call i2CStart
    b0 = $C0
    call i2CWrByte
     
    ;erste Wert
    read D3,b0
    call i2CWrByte

    ;zweite Wert
    read D2,b0
    call i2CWrByte
     
    ;dritte Wert
    read D1,b0
    call i2CWrByte
     
    ;vierte Wert
    read D0,b0
    call i2CWrByte

    call i2CStop
    return
     
    i2CStart:
    high clk
    high dio
    low dio
    low clk
    return

    i2CStop:
    low clk
    low dio
    high clk
    high dio
    return
     
    ;
    i2CWrByte: ;outpinC.1 = dio
    outpinc.1 = bit0:pulsout clk, 1
    outpinc.1 = bit1:pulsout clk, 1
    outpinc.1 = bit2:pulsout clk, 1
    outpinc.1 = bit3:pulsout clk, 1
    outpinc.1 = bit4:pulsout clk, 1
    outpinc.1 = bit5:pulsout clk, 1
    outpinc.1 = bit6:pulsout clk, 1
    outpinc.1 = bit7:pulsout clk, 1
    pulsout clk, 1
    return
     
    ;Setze die Helligkeit ($88 = AN, $88 bis $8F = Helligkeitsstufen)
    brightness:
    call i2cstart
    b0 = 138
    call i2CWrByte
    call i2CStop
    return
     
     



    Hierzu gibt es natürlich auch ein Video .....



    Man muß sich eigentlich nicht sooo genau damit beschäftigen wie das Teil jetzt im Einzelnen genau funktioniert.
    Wichtig ist , man benötigt für eine 4-stellige Zahl / Wert eben 4 einzelne Variablen .
    Löst die 4-Stellige Zahl in ihrer Wertigkeit auf und weist sie den passenden Variablen zu.

    Die Prozeduren sind so "eingestellt" das immer 4 Werte ( D3 , D2 , D1 , D0 ) erwartet werden und von links nach rechts gesendet wird.


    Jetzt haben diese einzelnen Segmente ja noch unten rechts Punkte.
    Das ist von Vorteil , wenn man z.B. eine Spannung anzeigen lassen will ( z.B.: 3,59)
    Möchte man diesen Punkt aktivieren , addiert man zu den jeweilgen Wert ( D3 , D2 , D1 , D0 ) den Wert : 128
    (Im Prinzip wird hiermit das 7.Bit auf 1 gesetzt )
    Würde jetzt in diesem Beispiel so aussehen das man in der Prozedur :SDISPLAY folgende Zeilen ergänzt :

    ;zweite Wert
    read D2,b0
    D2 = D2 +128
    call i2CWrByte

  • Neues Picaxe-BoardDatum26.02.2019 16:47
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    naja , wer lesen kann , wird auch dieses mal lesen

    Ich will ja auch nicht Geld damit verdienen.

    So wie ich das rausgehört habe , macht ja keiner wirklich was mit ner Picaxe.
    Die 2-3 Funktionen die die Leute so brauchen , dafür nehmese doch meist nen Stück Lochraster und brunzeln sich da was zusammen

    Son Board nackisch kost ja man grad wie ne Schachtel Kippen.
    Aber ... wer will noch löten ?

    Und son komplettes Fertigboard bekommst nun mal mit all den Teilen in der geringen Stückzahl nicht unter 30 Euro - natürlich wieder viiiel zu teuer

    Also zeig ich halt nur was man hätte haben können .....

  • Neues Picaxe-BoardDatum25.02.2019 12:04
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    Funktionstest





    . . . . läuft . . . .

  • Neues Picaxe-BoardDatum24.02.2019 14:07
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    Hier dann mal mein Kunstwerk



    (Qualität könnte etwas besser sein :-( )


    Mir war diesmal wichtig , das man nicht ständig den Chip wechseln muß.
    Hier hat man alle 3 Varianten gleichzeitig zur Verfügung und über den Schiebeschalter , über jeder Picaxe , definiert man welcher gerade programmiert wird.
    Man hat quasi 3 Boards in einem.

    Auch fand ich die bisher klassische Anordnung der LED's , rechts oder links aussen , nicht so schön und praktisch.
    Dafür habe ich lieber ein paar Taster und Potis aussen plaziert um verschiedene Zustände simulieren zu können. ( high , low , ADC , ect. )

    Alle LED's sind natürlich wie immer über Jumper de-und aktivierbar.
    Oben befindet sich ein Widerstandsnetzwerk mit 10K Pulldowns.
    Dafür besitz auch jeder Chip eine 2-reihige Buchsenreihe an jedem Pin um sowohl eine Verbindung zu einem Pulldown und/oder einer weiteren Funktion steckbar zu machen.

    Es befinden sich auch weitere Vcc und GND Anschlüsse auf dem Board um andere Gerätschaften direkt vom Board aus mit 5V Spannung zu versorgen.

  • Neues Picaxe-BoardDatum24.02.2019 10:54
    Thema von BoomBoomMagic im Forum Little small Talk

    Mittlerweile ist die Trans-Sibirische-Kamel-Karawane bei mir eingetroffen und hat mir die Ladung der neuen Picaxe-Boards geliefert

    Ich bin dabei sie gerade fertig zu löten um sie dann hier euch vorstellen zu können.

    (der Tag könnt 36h haben .. )

  • deutsche Picaxe - BefehleDatum24.02.2019 10:49
    Foren-Beitrag von BoomBoomMagic im Thema deutsche Picaxe - Befehle

    So eine Übersetzung ist ja immer so ein Sache .....

    gerade in diesem Fall , wo noch bauteilspezifische Begriffe hinzu kommen.

    Zu 99,487% habe ich mich an dem englischen Wortlaut gehalten , aber nicht immer kann man total 1:1 übersetzen.
    Auf der andere Seite muß man sehr genau aufpassen die Übersetzung nicht zu freizügig zu gestalten , da man sonst ganz schnell den Sinn und Inhalt verändert.

    Dennoch bin ich offen für jegliche "verständlichere Anpassung" des Textes.

    Will sagen , wenn mir jemand für die ein oder andere Textpassage eine bessere , verständlichere deutsche Alternative aufzeigt,
    will ich gern diese einfliessen lassen.
    Aber immer 2x lesen und 3x nachdenken ob der Sinn der Übung dabei erhalten bleibt



    Auch optisch bin ich noch nicht sooo ganz zufrieden mit meinem "Werk" ...

  • deutsche Picaxe - BefehleDatum24.02.2019 10:12
    Foren-Beitrag von BoomBoomMagic im Thema deutsche Picaxe - Befehle

    Auch ich und andere sind der englischen Sprache durchaus mächtig.
    Zumindest für den Hausgebrauch und diverser Software ist es mehr als ausreichend

    Dennoch muß ich sagen , hatte ich beim Übersetzen doch ab und an diesen : Aha-Effekt ?!
    Denn so hatte ich dann doch nicht mehr alles genau im Kopf bzw. war der Meinung dass, ...

  • deutsche Picaxe - BefehleDatum23.02.2019 19:10
    Foren-Beitrag von BoomBoomMagic im Thema deutsche Picaxe - Befehle

    wat isn da jetzt Dein Problem dabei eigentlich ??

  • deutsche Picaxe - BefehleDatum23.02.2019 18:12
    Foren-Beitrag von BoomBoomMagic im Thema deutsche Picaxe - Befehle

    Ich denke Du bist hier jez nicht so repräsentativ .... Du bekommst ja alles kaputt und nichts geladen
    Aber die anderen 25 Gäste werden sich wohl bestens dran erfreuen

  • 7-Segment mal anders - Teil IIDatum22.02.2019 09:39
    Thema von BoomBoomMagic im Forum Basic's

    Jetzt fragt man sich :

    Wie könnte man das z.B. anwenden , wenn ich eine Spannung messen will und anzeigen lassen ?


    ok.


    Setzen wir mal vorraus das die Versorgungssspannung exakt 5V beträgt !

    Dann brauchen wir jetzt erst einmal einen Faktor.
    Warum ?

    Wir erhalten ja beim Messen der Spannung einen Wert von 0-1023.
    Das ist ja nur der Wert , den die Picaxe ermittelt , den müssen wir ja in einen Spannungswert umrechnen.
    Und zum Umrechnen benötigen wir eben diesen Faktor.

    Dazu rechnet man :

    5V Ausgangsspannung (Referenz) : 1023 (werte) = 0,00488
    Heißt , pro Wert ergäbe das in echt eine Spannung von 0,00488V

    Jetzt kann die Picaxe aber keine Komma !!
    Darum müssen wir alles quasi potentieren um 10000
    Damit wäre unser Faktor : 0,00488 * 10000 = 48,8 ... runden wir auf 49

    Wenn wir jetzt also eine Spannung an der Picaxe einlesen :

    READADC10 0,w1


    und sagen wir mal .... wir bekommen einen Wert von 420 zurück

    Dann müssen wir auch dieses Ergebnis potentieren : W1 = w1 * 100 ==> 420 *100 = 42 000
    Als nächstes unseren Faktor anwenden :

    42000 : 1000 * Faktor : 10 =
    42000 : 1000 * 49 : 10 = 205


    w1 = w1 /1000 * 49 /10


    Warum so komisch umständlich ?
    Weil die Picaxe nun mal keine Komma kann und wir die eigentliche Berechnung im höheren Wertebereich ansetzen müssen
    um dann am Ende den richtigen Wert zu erhalten.

    Das Ergebnis ist nun 205 , bedeutet , wir haben eine Spannung von 2,05V gemessen bei einem ADC-Wert von 420 und einer Spannungsversorgung von 5V

    Wenn wir nun also 3 Stk 7-Segmentanzeigen kaskadiert haben wie im ersten Teil beschrieben , lautet der Code lediglich :


    Pulsout 1,10 ' Reset
    For b0 = 1 to 205
    pulsout 0,10
    next b0

  • 7-Segment mal andersDatum22.02.2019 08:58
    Thema von BoomBoomMagic im Forum Basic's

    Im Manual3.pdf gibt es ein schönes Beispiel , wie man eine 7-Segment Anzeige per Picaxe benutzen kann , das vielleicht nur wenige oder noch keiner kennt .


    Hier mal die Beispielschaltung aus dem pdf :




    Interessant für die Picaxe sind lediglich die beiden Pins1 + 15
    Pin1 ist das Clock-Signal
    Pin15 das Reset-Signal

    Dieser Baustein zählt von 0 bis 9.
    Nach jedem Impuls wird die Anzeige um 1 erhöht.

    Möchte man z.B. eine 4 anzeigen lassen , würde der Code z.B. so aussehen :


    Pulsout 1,10 ' Reset
    For b0 = 1 to 4
    pulsout 0,10
    next b0



    Da die Zählung so unheimlich schnell passiert und das menschliche Auge sehr träge ist , kann man den einzelnen Wechsel
    der Zahlen nicht erkennen und sieht nur das am Ende eine 4 angezeigt wird.


    Jetzt fragt sich der Ein oder Andere :

    Ja schön und gut , ... was ist aber wenn ich eine 2-stellige Zahl anzeigen lassen möchte ?
    Brauche ich dann 4 Pins an der Picaxe ?


    Antwort : NEIN


    Man kann diesen Baustein kaskadieren





    Dazu gibt es den Pin5 (OUT)
    Diesen verbindet man lediglich mit dem Pin1 (Clock) der zweiten 7-segmentanzeige.
    Die beiden Reset Pins können zusammen geführt werden.


    Ich muß leider zugeben das dieser Schaltplan aus dem Manual3.pdf ein bissel dumm gezeichnet ist ....
    denn ...

    Wenn ich jetzt z.B. die Zahl 15 anzeigen lassen möchte , geht das wie folgt .


    Pulsout 1,10 ' Reset
    For b0 = 1 to 15
    pulsout 0,10
    next b0



    Was passiert ?

    Die erste Segmentanzeige zählt los , .... 1-2-3-4-5-6-7-8-9 ... so , jetzt würde diese wieder auf 0 gehen , sendet aber dann gleichzeitig
    am OUT einen Impuls zu nächsten Anzeige , die dann von 0 auf 1 springt , ergibt dann als Anzeige : 1 0

    Ablauf :

    0 1
    0 2
    0 3
    0 4
    0 5
    0 6
    0 7
    0 8
    0 9
    1 0

    da die Schleife ja bis 15 zählt , gehts dann noch weiter .....

    1 1
    1 2
    1 3
    1 4
    1 5

    Wie gesagt , ist der Schaltplan etwas falsch gezeichnet , denn die jetzt rechte Segmentanzeige , gehört (optisch) auf die linke Seite

    Die Kaskadierung kann man quasi unendlich weit betreiben und Zahlen bis ....100 .... 1000 ... 10000 und und und anzeigen lassen.
    Das Ganze dann lediglich mit 2 Pins von der Picaxe .

  • deutsche Picaxe - BefehleDatum21.02.2019 19:02
    Thema von BoomBoomMagic im Forum Software

    Schon vor 10 Jahren hatte ich den Wunsch alle Befehle mal ins Deutsche übersetzen zu wollen ...

    Ich merkte aber dann doch sehr schnell nach einigen Befehlen , wie sau viel Arbeit dahinter steckt und wie Spaß das doch macht.

    Auf der anderen Seite kann ich auch jeden Neuling verstehen , das es wenig Spaß macht etwas zu erlernen , wenn das noch nicht mal in der Muttersprache erklärt ist

    Dem Hersteller geht eine Übersetzung leider doch ziemlich am vorbei

    Andere haben es in den letzten Jahren auch versucht , .... aber doch kläglich gescheitert.


    Nagut, .. ich habe mich jetzt eine Woche dran gesetzt und es endlich geschafft !

    Der ein oder andere wird es vielleicht schon bemerkt haben , oben unter dem Logo , in der kleinen Icon/Menu Leiste befindet sich das Knöbbsche zum Glück


    |addpics|nqa-25-6a99.jpg-invaddpicsinvv|/addpics|

  • Geigerzähler mit Picaxe?Datum21.02.2019 10:17
    Foren-Beitrag von BoomBoomMagic im Thema Geigerzähler mit Picaxe?

    Sie meinten ....





    solange dann aber auch nicht warten ....

  • Version des PEDatum20.02.2019 22:58
    Foren-Beitrag von BoomBoomMagic im Thema Version des PE

    PE alt :





    PE neu :



    |addpics|nqa-23-bfbb.jpg,nqa-24-dd9f.jpg|/addpics|

  • Version des PEDatum20.02.2019 20:54
    Foren-Beitrag von BoomBoomMagic im Thema Version des PE

    Von welchem PE reden wir ?

    Dem alten oder dem neuen ?

  • Geigerzähler mit Picaxe?Datum20.02.2019 12:35
    Foren-Beitrag von BoomBoomMagic im Thema Geigerzähler mit Picaxe?

    Zitat

    Aber keine Sorge, ich bekomme das sicher in den Griff, bevor Tschernobyl aufhört zu strahlen...



    nicht nur das sich manche selbst im Weg stehen ...
    dann auch noch so talentfrei sind alles kaputt-reparieren müssen
    wenn Pech hast , ist Tschernobyl auch noch futsch

  • Geigerzähler mit Picaxe?Datum18.02.2019 20:47
    Foren-Beitrag von BoomBoomMagic im Thema Geigerzähler mit Picaxe?

    also damit haben Sie sich nicht gerade Punkte erarbeitet hier mal Moderator zu werden

Inhalte des Mitglieds BoomBoomMagic
Beiträge: 533
Ort: Bielefeld
Geschlecht: männlich
Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz