salve a tutti...e grazie per le risposte!
rispondo :
Hai un condensatore di disaccoppiamento vicino al display? NO
- Sei su breadboard? SI
- Hai un oscilloscopio per fare delle verifiche? NO
- L'alimentazione è sufficiente, l'alimentatore è ben dimensionato? SI
- Puoi pubblicare lo schema del circuito? NO
sotto riporto però il file del programmino.... chiedo scusa in anticipo per eventuali castronerie .. !
grazie e buon week end
papà Massi
' **********************************************************************
' * File: presepemax_2012.bas - Rel. x.n del 04.05.12 by Max B:
' * Scheda: ARDUINO UNO con Bascom AVR
' * PROVE Funz.con sheda ARDUINO e BascomAVR
' **********************************************************************
'
'****************** Direttive del compilatore **************************
'
$regfile = "m328pdef.dat"
$crystal = 16000000
$baud = 19200
Config Clockdiv = 2
Config Pind.3 = Input ' echo
Config Portd.2 = Output ' trigger
Config Portb = Output
Config Portd.7 = Output
Config Portd.4 = Output
'$sim
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
Config Timer2 = Pwm , Prescale = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
Config Debounce = 50
'Config Adc = Single , Prescaler = Auto , Reference = Internal
'****************** Dichiarazione delle costanti ***********************
'
Const Mas = " PRESEPE 2012 "
'
'****************** Dichiarazione delle variabili **********************
'
Dim N As Byte , I As Byte , A As Byte
Dim Var As String * 1
Dim Su As Byte , Giu As Byte
Dim Tempo As Word
Dim Dist As Word
'
'************************* Programma main ******************************
'
Disable Interrupts 'Disabilita interrupt
Cls : Cursor Off 'Inizializza LCD
Lcd Mas
Print Mas
Waitms 2500
Cls
Lcd "Test comandi ON"
Print "Test comandi ON"
For N = 0 To 7
Portb = 2 ^ N
Waitms 20
Next
Set Portd.7
Waitms 50
Reset Portd.7
Waitms 50
Set Portd.4
Waitms 50
Reset Portd.4
Waitms 50
Reset Portb.0
Pwm2a = 0
Waitms 50
Pwm2a = 255
Cls
Lcd "Test comandi OFF"
Print "Test comandi OFF"
Waitms 200
Avvio:
Cls
Print "Avvia il Presepio "
Upperline
Lcd " Avvia il "
Lowerline
Lcd " presepio "
Via:
Waitms 20
' Portd.2 = 1
Pulseout Portd , 2 , 400
'Portd.2 = 0
Pulsein Tempo , Pind , 3 , 1
Tempo = Tempo * 10
Dist = Tempo / 29
If Dist < 4 Then
Gosub Programma
Elseif Dist >= 4 Then
Goto Via
Waitms 10
Cls
End If
Programma:
Print "PROGRAMMA_CARLO_ON"
Cls
Lcd "PROGRAM_CARLO_ON"
For A = 1 To 16
Shiftlcd Right
Waitms 300
Next
For A = 1 To 16
Shiftlcd Left
Waitms 300
Next
For Su = 255 To 0 Step -1
Pwm2a = Su 'accende gradatamente LUCI_GIORNO
If Su = 150 Then Set Portb.2 ' fontana UP
If Su = 120 Then Set Portd.7 ' pastori (treno)-nonna UP
If Su = 100 Then Set Portb.5 ' panni stesi - UP
Waitms 20
Next
Waitms 1000
For Giu = 0 To 255
Pwm2a = Giu 'spegne gradatamente LUCI_GIORNO
If Giu = 50 Then Reset Portd.7 ' pastori (treno)-nonna DOWN
If Giu = 80 Then Reset Portb.5 'panni stesi - DOWN
If Giu = 120 Then Reset Portb.2 'fontana DOWN
If Giu = 150 Then Set Portb.0 'fuoco UP
Waitms 20
Next
Portb.1 = 1 'stelle UP
Waitms 500
Lowerline : Lcd "STELLE ACCESE"
Set Portb.4 'luci case UP
Waitms 500
Lowerline : Lcd "LUCI CASE ACCESE"
Set Portd.4 ' luce notte UP
Waitms 500
Lowerline : Lcd "LUCE NOTTE ACCESE"
Reset Portb.0 'fuoco DOWN
Waitms 500
Lowerline : Lcd " FUOCO SPENTO"
Reset Portb.4 'luci case DOWN
Waitms 500
Lowerline : Lcd "LUCI CASE SPENTE"
Reset Portb.1 'stelle DOWN
Waitms 500
Lowerline : Lcd "STELLE SPENTE"
Reset Portd.4 ' luce notte DOWN
Lowerline : Lcd "LUCI NOTTE SPENTE"
Cls : Lcd "PROGRAMMA CARLO"
Lowerline : Lcd " CONCLUSO "
Print "PROGRAMMA_CARLO_CONCLUSO"
Waitms 1000
Goto Avvio
End