FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Horloge LED Emptypar papydall Aujourd'hui à 16:57

» PANORAMIC V 1
Horloge LED Emptypar papydall Aujourd'hui à 3:22

» select intégrés [résolu]
Horloge LED Emptypar jjn4 Hier à 17:00

» number_mouse_up
Horloge LED Emptypar jjn4 Hier à 11:59

» Aide de PANORAMIC
Horloge LED Emptypar jjn4 Hier à 11:16

» trop de fichiers en cours
Horloge LED Emptypar lepetitmarocain Hier à 10:43

» Je teste PANORAMIC V 1 beta 1
Horloge LED Emptypar papydall Hier à 4:17

» bouton dans autre form que 0
Horloge LED Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Horloge LED Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Horloge LED Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Horloge LED Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Horloge LED Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Horloge LED Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Horloge LED Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Horloge LED Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

 

 Horloge LED

Aller en bas 
4 participants
AuteurMessage
Marc

Marc


Nombre de messages : 2392
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Horloge LED Empty
MessageSujet: Horloge LED   Horloge LED EmptyMar 17 Nov 2020 - 23:45

Bonjour à tous !

Horloge LED Horlog10

Voici la reproduction tout en Panoramic d’une horloge LED.

Elle est synchronisée sur l’horloge du PC.
Un clic droit sur l’horloge vous donnera accès au menu :

-  Choix de la couleur des LEDs
-  Présentation avec ou sans le bandeau de la fenêtre
-  Quitter le programme


Voici un lien avec l’exécutable et le code source.

https://mon-partage.fr/f/UgxLttGc/

Code:
' Horloge 2
' Marc - novembre 2020
dim r%, v%, b%, s1%, s2%, m1%, m2%, h1%, h2%, flash%, couleur%, c%, t%

label quitter, bandeau, dimensions, couleur, synchro


interfaceUtilisateur()

dessinerHorloge()

timer 40
timer_interval 40,500
on_timer 40,synchro

end
 
synchro:
    s1% = time_second
    m1% = 10 * frac(time_minute / 10)
    m2% = int(time_minute / 10)
    h1% = 10 * frac(time_hour / 10)
    h2% = int(time_hour / 10)

    defilementSecondes(s1%)
    clignotementSecondes()

    d1(m1%)
    d2(m2%)
    d3(h1%)
    d4(h2%)
return


sub defilementSecondes(secondes%)
    dim_local i%,x%,y%
    2d_target_is 20
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%

    ' effacement couronne des secondes
    if secondes% = 0
        2d_fill_color 0,0,0
        2d_pen_color 0,0,0
        FOR i% = 180 to -180 step -6
            X%=95*SIN(i%)+135
            y%=95*COS(i%)+135
            2D_circle x%,y%,2
        next i%    
    end_if

    secondes% = 29 - secondes%

    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%

    X%=95*SIN(secondes%*6)+135
    y%=95*COS(secondes%*6)+135
    2D_circle x%,y%,2

    ' variation de la couleur d'affichage
    if c% = 1 :' flag couleurs : fixes ou variation
        t% = t% + 1 :' compteur pour changer la couleur toutes les x(t) (t=500ms)
        if t% > 30 :' changer de couleur toutes les 15 secondes
            couleur% = couleur% + 1
            if couleur% > 256
                couleur% = 0
            end_if
            t% = 0
        end_if    
        couleurVariableAffichage()
        couronneExterieure()
    end_if

end_sub


sub clignotementSecondes()
'    2d_target_is 20

    if flash% = 0
        flash% = 1
        2d_fill_color 0,0,0
        2d_pen_color 0,0,0
        2d_circle 137,126,2
        2d_circle 133,144,2
    else
        flash% = 0
        2d_fill_color r%,v%,b%
        2d_pen_color r%,v%,b%
        2d_circle 137,126,2
        2d_circle 133,144,2
    end_if    
end_sub


sub d1(chiffre%)
    2d_target_is 31
    select chiffre%
        case 0
            zero()
        case 1
            un()
        case 2
            deux()
        case 3
            trois()
        case 4
            quatre()
        case 5
            cinq()
        case 6
            six()
        case 7
            sept()
        case 8
            huit()
        case 9
            neuf()
    end_select
end_sub


sub d2(chiffre%)
    2d_target_is 32
    select chiffre%
        case 0
            zero()
        case 1
            un()
        case 2
            deux()
        case 3
            trois()
        case 4
            quatre()
        case 5
            cinq()
        case 6
            six()
        case 7
            sept()
        case 8
            huit()
        case 9
            neuf()
    end_select
end_sub


sub d3(chiffre%)
    2d_target_is 33
    select chiffre%
        case 0
            zero()
        case 1
            un()
        case 2
            deux()
        case 3
            trois()
        case 4
            quatre()
        case 5
            cinq()
        case 6
            six()
        case 7
            sept()
        case 8
            huit()
        case 9
            neuf()
    end_select
end_sub


sub d4(chiffre%)
    2d_target_is 34
    select chiffre%
        case 0
            zero()
        case 1
            un()
        case 2
            deux()
        case 3
            trois()
        case 4
            quatre()
        case 5
            cinq()
        case 6
            six()
        case 7
            sept()
        case 8
            huit()
        case 9
            neuf()
    end_select
end_sub


sub dessinerHorloge()
    dim_local i%,x%,y%
    degrees

    couronneExterieure()
    
    ' afficheur 4 digits
    afficheur1()
    afficheur2()
    afficheur3()
    afficheur4()
    clignotementSecondes()
end_sub


sub couronneExterieure()
    dim_local i%, x%, y%
    2d_target_is 20
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    for i% = 0 to 359 step 30
        X%=100*SIN(i%)+135
        y%=100*COS(i%)+135
        2D_circle x%,y%,2
    next i%
end_sub


sub afficheur1()
    picture 31
    width 31,36
    height 31,52
    top 31,109
    left 31,180
    color 31,0,0,0
end_sub


sub afficheur2()
    picture 32
    width 32,36
    height 32,52
    top 32,109
    left 32,145
    color 32,0,0,0
end_sub


sub afficheur3()
    picture 33
    width 33,36
    height 33,52
    top 33,109
    left 33,90
    color 33,0,0,0
end_sub


sub afficheur4()
    picture 34
    width 34,36
    height 34,52
    top 34,109
    left 34,54
    color 34,0,0,0
end_sub


sub interfaceUtilisateur()
    border_hide 0
    width 0,width(0) - width_client(0) + 270
    height 0,height(0) - height_client(0) + 270
    top 0,20
    left 0,screen_x - 290
    caption 0,""
    on_resize 0,dimensions
    hint 0," Clic droit : menu "

    picture 20
    full_space 20
    color 20,0,0,0
    2d_target_is 20

    menuContextuel()

    ' couleur par défaut des LEDs
    r%=255
    v%=0
    b%=0

    ' sélection du mode Couleur Variable par défaut au démarrage
    c% = 1
    mark_on 10

end_sub


sub menuContextuel()
    main_menu_pop 1

    sub_menu 2
    parent 2,1
    caption 2,"Couleur LEDs"

    sub_menu 3
    parent 3,2
    caption 3,"Rouge"
    on_click 3,couleur

    sub_menu 4
    parent 4,2
    caption 4,"Vert"
    on_click 4,couleur

    sub_menu 5
    parent 5,2
    caption 5,"Jaune"
    on_click 5,couleur

    sub_menu 6
    parent 6,2
    caption 6,"Bleu"
    on_click 6,couleur

    sub_menu 7
    parent 7,2
    caption 7,"Blanc"
    on_click 7,couleur

    sub_menu 8
    parent 8,1
    caption 8,"Bande&au"
    mark_off 8
    on_click 8,bandeau

    sub_menu 9
    parent 9,1
    caption 9,"Quitter"
    on_click 9,quitter

    sub_menu 10
    parent 10,2
    caption 10,"Variable"
    on_click 10,couleur

end_sub


couleur:
    select number_click
        case 3
            c% = 0
            r% = 255
            v% = 0
            b% = 0
            mark_off 4
            mark_off 5
            mark_off 6
            mark_off 7
            mark_off 10
            mark_on 3
            
        case 4
            c% = 0
            r% = 0
            v% = 255
            b% = 0
            mark_off 3
            mark_off 5
            mark_off 6
            mark_off 7
            mark_off 10
            mark_on 4
        
        case 5
            c% = 0
            r% = 255
            v% = 255
            b% = 0
            mark_off 4
            mark_off 3
            mark_off 6
            mark_off 7
            mark_off 10
            mark_on 5
        
        case 6
            c% = 0
            r% = 0
            v% = 0
            b% = 255
            mark_off 4
            mark_off 5
            mark_off 3
            mark_off 7
            mark_off 10
            mark_on 6
        
        case 7
            c% = 0
            r% = 255
            v% = 255
            b% = 255
            mark_off 4
            mark_off 5
            mark_off 6
            mark_off 3
            mark_off 10
            mark_on 7

        case 10
            c% = 1
            mark_off 4
            mark_off 5
            mark_off 6
            mark_off 7
            mark_off 3
            mark_on 10

    end_select
    couronneExterieure()
return
      
sub couleurVariableAffichage()

    if couleur% => 0 and couleur% < 42
        r%= 255
        v%= couleur%*6
        b%= 0
    end_if

    if couleur% > 41 and couleur% < 85
        r%= 255-((couleur%-42)*6)
        v%= 255
        b%= 0
    end_if

    if couleur% > 84 and couleur% < 128
        r%= 0
        v%= 255
        b%= (couleur%-85)*6
    end_if

    if couleur% > 127 and couleur% < 171
        r%= ((couleur%-128)*6)
        v%= 255
        b%= 255
    end_if

    if couleur% > 170 and couleur% < 214
        r%= 255 - (couleur%-171)*6
        v%= 255 - (couleur%-171)*6
        b%= 255
    end_if

    IF couleur% > 213 and couleur% < 257
        r%= ((couleur%-214)*6)
        v%= 0
        b%= 255-((couleur%-214)*6)
    end_if

end_sub


sub un()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2
end_sub


sub deux()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
end_sub


sub trois()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
end_sub


sub quatre()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
end_sub


sub cinq()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
end_sub


sub six()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
end_sub


sub sept()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

end_sub


sub huit()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2
end_sub

sub neuf()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
end_sub


sub zero()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2
end_sub


bandeau:
    if caption$(8) = "Bande&au"
        mark_on 8
        caption 8,"Bandea&u"
        border_small 0
    else
        caption 8,"Bande&au"
        mark_off 8
        border_hide 0    
    end_if
return


dimensions:
    inactive 0
    width 0,width(0) - width_client(0) + 270
    height 0,height(0) - height_client(0) + 270
    active 0
return


quitter:
    terminate
return    
   

A bientôt !


Dernière édition par Marc le Lun 23 Nov 2020 - 19:42, édité 2 fois
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12295
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Horloge LED Empty
MessageSujet: Re: Horloge LED   Horloge LED EmptyMer 18 Nov 2020 - 0:58

Très joli, Marc ! Et le code est propre, bien construit et facile à comprendre. Du beau travail.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Horloge LED Empty
MessageSujet: Re: Horloge LED   Horloge LED EmptyMer 18 Nov 2020 - 7:32

Bonjour Marc !

Félicitation pour cette belle réalisation. Et c'est vrai que ton code est impeccable.

Bravo ! cheers


Dernière édition par Minibug le Mer 18 Nov 2020 - 12:28, édité 1 fois
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
jjn4

jjn4


Nombre de messages : 2704
Date d'inscription : 13/09/2009

Horloge LED Empty
MessageSujet: Re: Horloge LED   Horloge LED EmptyMer 18 Nov 2020 - 11:51

Oui, magnifique utilitaire !
Bravo !
cheers
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Marc

Marc


Nombre de messages : 2392
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Horloge LED Empty
MessageSujet: Re: Horloge LED   Horloge LED EmptyLun 23 Nov 2020 - 17:08

Merci à tous pour vos gentils commentaires.

Je vais ajouter à cette horloge une option "Couleur variable".
Je pense à une variation très lente des couleurs qui passeraient par différentes teintes.

A suivre…



Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2392
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Horloge LED Empty
MessageSujet: Re: Horloge LED   Horloge LED EmptyLun 23 Nov 2020 - 19:32

Voici la nouvelle version de l’horloge à LEDs.

Elle intègre une nouvelle option couleur "Variable".

Horloge LED H1_bmp10

Tout en douceur, les LEDs vont changer de teinte.
J’ai programmé 256 couleurs différentes avec une variation toutes les 15 secondes.
Si vous souhaitez voir défiler toutes les couleurs, il faudra rester devant l’horloge pendant un peu plus d’une heure, sans vous endormir ! lol!

Le fonctionnement n’a pas changé : clic droit sur l’horloge pour afficher le menu.
Si vous souhaitez déplacer l’horloge, il faudra afficher le Bandeau via le menu.

Les fichiers horloge.bas et horloge.exe sont disponibles dans le fichier horloge.zip, dans mon WebDAV et via ce lien :

https://mon-partage.fr/f/UgxLttGc/

Code:
' Horloge 2
' Marc - novembre 2020
dim r%, v%, b%, s1%, s2%, m1%, m2%, h1%, h2%, flash%, couleur%, c%, t%

label quitter, bandeau, dimensions, couleur, synchro


interfaceUtilisateur()

dessinerHorloge()

timer 40
timer_interval 40,500
on_timer 40,synchro

end
 
synchro:
    s1% = time_second
    m1% = 10 * frac(time_minute / 10)
    m2% = int(time_minute / 10)
    h1% = 10 * frac(time_hour / 10)
    h2% = int(time_hour / 10)

    defilementSecondes(s1%)
    clignotementSecondes()

    d1(m1%)
    d2(m2%)
    d3(h1%)
    d4(h2%)
return


sub defilementSecondes(secondes%)
    dim_local i%,x%,y%
    2d_target_is 20
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%

    ' effacement couronne des secondes
    if secondes% = 0
        2d_fill_color 0,0,0
        2d_pen_color 0,0,0
        FOR i% = 180 to -180 step -6
            X%=95*SIN(i%)+135
            y%=95*COS(i%)+135
            2D_circle x%,y%,2
        next i%    
    end_if

    secondes% = 29 - secondes%

    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%

    X%=95*SIN(secondes%*6)+135
    y%=95*COS(secondes%*6)+135
    2D_circle x%,y%,2

    ' variation de la couleur d'affichage
    if c% = 1 :' flag couleurs : fixes ou variation
        t% = t% + 1 :' compteur pour changer la couleur toutes les x(t) (t=500ms)
        if t% > 30 :' changer de couleur toutes les 15 secondes
            couleur% = couleur% + 1
            if couleur% > 256
                couleur% = 0
            end_if
            t% = 0
        end_if    
        couleurVariableAffichage()
        couronneExterieure()
    end_if

end_sub


sub clignotementSecondes()
'    2d_target_is 20

    if flash% = 0
        flash% = 1
        2d_fill_color 0,0,0
        2d_pen_color 0,0,0
        2d_circle 137,126,2
        2d_circle 133,144,2
    else
        flash% = 0
        2d_fill_color r%,v%,b%
        2d_pen_color r%,v%,b%
        2d_circle 137,126,2
        2d_circle 133,144,2
    end_if    
end_sub


sub d1(chiffre%)
    2d_target_is 31
    select chiffre%
        case 0
            zero()
        case 1
            un()
        case 2
            deux()
        case 3
            trois()
        case 4
            quatre()
        case 5
            cinq()
        case 6
            six()
        case 7
            sept()
        case 8
            huit()
        case 9
            neuf()
    end_select
end_sub


sub d2(chiffre%)
    2d_target_is 32
    select chiffre%
        case 0
            zero()
        case 1
            un()
        case 2
            deux()
        case 3
            trois()
        case 4
            quatre()
        case 5
            cinq()
        case 6
            six()
        case 7
            sept()
        case 8
            huit()
        case 9
            neuf()
    end_select
end_sub


sub d3(chiffre%)
    2d_target_is 33
    select chiffre%
        case 0
            zero()
        case 1
            un()
        case 2
            deux()
        case 3
            trois()
        case 4
            quatre()
        case 5
            cinq()
        case 6
            six()
        case 7
            sept()
        case 8
            huit()
        case 9
            neuf()
    end_select
end_sub


sub d4(chiffre%)
    2d_target_is 34
    select chiffre%
        case 0
            zero()
        case 1
            un()
        case 2
            deux()
        case 3
            trois()
        case 4
            quatre()
        case 5
            cinq()
        case 6
            six()
        case 7
            sept()
        case 8
            huit()
        case 9
            neuf()
    end_select
end_sub


sub dessinerHorloge()
    dim_local i%,x%,y%
    degrees

    couronneExterieure()
    
    ' afficheur 4 digits
    afficheur1()
    afficheur2()
    afficheur3()
    afficheur4()
    clignotementSecondes()
end_sub


sub couronneExterieure()
    dim_local i%, x%, y%
    2d_target_is 20
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    for i% = 0 to 359 step 30
        X%=100*SIN(i%)+135
        y%=100*COS(i%)+135
        2D_circle x%,y%,2
    next i%
end_sub


sub afficheur1()
    picture 31
    width 31,36
    height 31,52
    top 31,109
    left 31,180
    color 31,0,0,0
end_sub


sub afficheur2()
    picture 32
    width 32,36
    height 32,52
    top 32,109
    left 32,145
    color 32,0,0,0
end_sub


sub afficheur3()
    picture 33
    width 33,36
    height 33,52
    top 33,109
    left 33,90
    color 33,0,0,0
end_sub


sub afficheur4()
    picture 34
    width 34,36
    height 34,52
    top 34,109
    left 34,54
    color 34,0,0,0
end_sub


sub interfaceUtilisateur()
    border_hide 0
    width 0,width(0) - width_client(0) + 270
    height 0,height(0) - height_client(0) + 270
    top 0,20
    left 0,screen_x - 290
    caption 0,""
    on_resize 0,dimensions
    hint 0," Clic droit : menu "

    picture 20
    full_space 20
    color 20,0,0,0
    2d_target_is 20

    menuContextuel()

    ' couleur par défaut des LEDs
    r%=255
    v%=0
    b%=0

    ' sélection du mode Couleur Variable par défaut au démarrage
    c% = 1
    mark_on 10

end_sub


sub menuContextuel()
    main_menu_pop 1

    sub_menu 2
    parent 2,1
    caption 2,"Couleur LEDs"

    sub_menu 3
    parent 3,2
    caption 3,"Rouge"
    on_click 3,couleur

    sub_menu 4
    parent 4,2
    caption 4,"Vert"
    on_click 4,couleur

    sub_menu 5
    parent 5,2
    caption 5,"Jaune"
    on_click 5,couleur

    sub_menu 6
    parent 6,2
    caption 6,"Bleu"
    on_click 6,couleur

    sub_menu 7
    parent 7,2
    caption 7,"Blanc"
    on_click 7,couleur

    sub_menu 8
    parent 8,1
    caption 8,"Bande&au"
    mark_off 8
    on_click 8,bandeau

    sub_menu 9
    parent 9,1
    caption 9,"Quitter"
    on_click 9,quitter

    sub_menu 10
    parent 10,2
    caption 10,"Variable"
    on_click 10,couleur

end_sub


couleur:
    select number_click
        case 3
            c% = 0
            r% = 255
            v% = 0
            b% = 0
            mark_off 4
            mark_off 5
            mark_off 6
            mark_off 7
            mark_off 10
            mark_on 3
            
        case 4
            c% = 0
            r% = 0
            v% = 255
            b% = 0
            mark_off 3
            mark_off 5
            mark_off 6
            mark_off 7
            mark_off 10
            mark_on 4
        
        case 5
            c% = 0
            r% = 255
            v% = 255
            b% = 0
            mark_off 4
            mark_off 3
            mark_off 6
            mark_off 7
            mark_off 10
            mark_on 5
        
        case 6
            c% = 0
            r% = 0
            v% = 0
            b% = 255
            mark_off 4
            mark_off 5
            mark_off 3
            mark_off 7
            mark_off 10
            mark_on 6
        
        case 7
            c% = 0
            r% = 255
            v% = 255
            b% = 255
            mark_off 4
            mark_off 5
            mark_off 6
            mark_off 3
            mark_off 10
            mark_on 7

        case 10
            c% = 1
            mark_off 4
            mark_off 5
            mark_off 6
            mark_off 7
            mark_off 3
            mark_on 10

    end_select
    couronneExterieure()
return
      
sub couleurVariableAffichage()

    if couleur% => 0 and couleur% < 42
        r%= 255
        v%= couleur%*6
        b%= 0
    end_if

    if couleur% > 41 and couleur% < 85
        r%= 255-((couleur%-42)*6)
        v%= 255
        b%= 0
    end_if

    if couleur% > 84 and couleur% < 128
        r%= 0
        v%= 255
        b%= (couleur%-85)*6
    end_if

    if couleur% > 127 and couleur% < 171
        r%= ((couleur%-128)*6)
        v%= 255
        b%= 255
    end_if

    if couleur% > 170 and couleur% < 214
        r%= 255 - (couleur%-171)*6
        v%= 255 - (couleur%-171)*6
        b%= 255
    end_if

    IF couleur% > 213 and couleur% < 257
        r%= ((couleur%-214)*6)
        v%= 0
        b%= 255-((couleur%-214)*6)
    end_if

end_sub


sub un()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2
end_sub


sub deux()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
end_sub


sub trois()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
end_sub


sub quatre()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
end_sub


sub cinq()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
end_sub


sub six()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
end_sub


sub sept()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

end_sub


sub huit()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2
end_sub

sub neuf()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
end_sub


sub zero()
    ' segments allumés
    2d_fill_color r%,v%,b%
    2d_pen_color r%,v%,b%
    ' segment a
    2d_circle 15,3,2
    2d_circle 20,3,2
    2d_circle 25,3,2
    2d_circle 30,3,2
    ' segment b
    2d_circle 33,7,2
    2d_circle 32,12,2
    2d_circle 31,17,2
    2d_circle 30,22,2
    ' segment c
    2d_circle 28,30,2
    2d_circle 27,35,2
    2d_circle 26,40,2
    2d_circle 25,45,2
    ' segment d
    2d_circle 6,49,2
    2d_circle 11,49,2
    2d_circle 16,49,2
    2d_circle 21,49,2
    ' segment e
    2d_circle 6,30,2
    2d_circle 5,35,2
    2d_circle 4,40,2
    2d_circle 3,45,2
    ' segment f
    2d_circle 11,7,2
    2d_circle 10,12,2
    2d_circle 9,17,2
    2d_circle 8,22,2

    ' segments éteints
    2d_fill_color 0,0,0
    2d_pen_color 0,0,0
    ' segment g
    2d_circle 11,26,2
    2d_circle 16,26,2
    2d_circle 21,26,2
    2d_circle 26,26,2
end_sub


bandeau:
    if caption$(8) = "Bande&au"
        mark_on 8
        caption 8,"Bandea&u"
        border_small 0
    else
        caption 8,"Bande&au"
        mark_off 8
        border_hide 0    
    end_if
return


dimensions:
    inactive 0
    width 0,width(0) - width_client(0) + 270
    height 0,height(0) - height_client(0) + 270
    active 0
return


quitter:
    terminate
return    


Bonne soirée à tous !
Revenir en haut Aller en bas
Contenu sponsorisé





Horloge LED Empty
MessageSujet: Re: Horloge LED   Horloge LED Empty

Revenir en haut Aller en bas
 
Horloge LED
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Horloge
» Une horloge à compteur mécanique!
» Une horloge mondiale
» Horloge Mondiale II
» Horloge trigonométrique

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: