KRITSADA

AX-MicroBIT TM1637 MCP7940 Real Time Clock with Alarm Settin

Jun 15th, 2019
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. input.onButtonPressed(Button.AB, function () {
  2.     kitronik_RTC.setTime(21, 52, 0)
  3.     kitronik_RTC.setDate(15, 6, 19)
  4. })
  5. input.onGesture(Gesture.Shake, function () {
  6.     music.stopMelody(MelodyStopOptions.All)
  7.     Alarm = 0
  8. })
  9. input.onButtonPressed(Button.A, function () {
  10.     if (Mode == 1) {
  11.         basic.showIcon(IconNames.Umbrella)
  12.         Mode = 2
  13.         tm.showNumber(kitronik_RTC.readHours() * 100 + kitronik_RTC.readMinutes())
  14.     } else if (Mode == 2) {
  15.         basic.showIcon(IconNames.Scissors)
  16.         Mode = 3
  17.         Alarm = 1
  18.         tm.showNumber(Hour * 100 + Min)
  19.     } else if (Mode == 3) {
  20.         basic.showIcon(IconNames.Heart)
  21.         Mode = 1
  22.     } else {
  23.         basic.showIcon(IconNames.Heart)
  24.         Mode = 1
  25.     }
  26. })
  27. input.onButtonPressed(Button.B, function () {
  28.     if (Mode == 1) {
  29.         Mode = 0
  30.         tm.off()
  31.     } else {
  32.         Mode = 1
  33.         tm.on()
  34.     }
  35. })
  36. let Alarm = 0
  37. let Min = 0
  38. let Hour = 0
  39. let Mode = 0
  40. let tm: TM1637.TM1637LEDs = null
  41. tm = TM1637.create(
  42. DigitalPin.P13,
  43. DigitalPin.P14,
  44. 7,
  45. 5
  46. )
  47. Mode = 1
  48. Hour = 22
  49. Min = 40
  50. basic.forever(function () {
  51.     if (Mode == 3) {
  52.         if (pins.digitalReadPin(DigitalPin.P12) == 0) {
  53.             if (Hour < 23) {
  54.                 Hour = Hour + 1
  55.             } else {
  56.                 Hour = 0
  57.             }
  58.             tm.showNumber(Hour * 100 + Min)
  59.             basic.pause(200)
  60.         }
  61.         if (pins.digitalReadPin(DigitalPin.P16) == 0) {
  62.             if (Min < 59) {
  63.                 Min = Min + 1
  64.             } else {
  65.                 Min = 0
  66.             }
  67.             tm.showNumber(Hour * 100 + Min)
  68.             basic.pause(200)
  69.         }
  70.     }
  71. })
  72. basic.forever(function () {
  73.     if (Mode == 2) {
  74.         if (pins.digitalReadPin(DigitalPin.P12) == 0) {
  75.             kitronik_RTC.writeHours(kitronik_RTC.readHours() + 1)
  76.             tm.showNumber(kitronik_RTC.readHours() * 100 + kitronik_RTC.readMinutes())
  77.             basic.pause(200)
  78.         }
  79.         if (pins.digitalReadPin(DigitalPin.P16) == 0) {
  80.             kitronik_RTC.writeMinutes(kitronik_RTC.readMinutes() + 1)
  81.             tm.showNumber(kitronik_RTC.readHours() * 100 + kitronik_RTC.readMinutes())
  82.             basic.pause(200)
  83.         }
  84.     }
  85. })
  86. basic.forever(function () {
  87.     if (Mode == 3) {
  88.         tm.on()
  89.         basic.pause(100)
  90.         tm.off()
  91.         basic.pause(100)
  92.     }
  93. })
  94. basic.forever(function () {
  95.     if (Mode == 2) {
  96.         tm.on()
  97.         basic.pause(100)
  98.         tm.off()
  99.         basic.pause(100)
  100.     }
  101. })
  102. basic.forever(function () {
  103.     if (Alarm) {
  104.         if (kitronik_RTC.readHours() == Hour) {
  105.             if (kitronik_RTC.readMinutes() == Min) {
  106.                 music.beginMelody(music.builtInMelody(Melodies.Birthday), MelodyOptions.Once)
  107.                 Alarm = 0
  108.             }
  109.         }
  110.     }
  111. })
  112. basic.forever(function () {
  113.     if (Mode == 1) {
  114.         tm.on()
  115.         tm.showNumber(kitronik_RTC.readHours() * 100 + kitronik_RTC.readMinutes())
  116.         tm.showDP(1, true)
  117.         basic.pause(500)
  118.         tm.showDP(1, false)
  119.         basic.pause(500)
  120.     }
  121. })
Advertisement
Add Comment
Please, Sign In to add comment