Skip to content

Instantly share code, notes, and snippets.

@Abidzar16
Created January 21, 2019 05:33
Show Gist options
  • Save Abidzar16/8d7efa92a43dde422f9e751a0e32f78b to your computer and use it in GitHub Desktop.
Save Abidzar16/8d7efa92a43dde422f9e751a0e32f78b to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Arduino Kitchen Timer"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"###### ditulis oleh : Abidzar Muhammad Ghifary Kurniawan\n",
"\n",
"Kelompok kami membuat Arduino Kitchen Timer, dalam rangka pengerjaan tugas besar sistem digital dan mikroprosesor, Arduino Kitchen Timer merupakan Timer berbasis arduino yang dimana pengguna dapat menyetel waktu yang diinginkan dan menjalankan timer, Arduino Kitchen Timer dapat mengeluarkan suara jika waktu sudah habis\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Komponen - komponen yang kami gunakan untuk pengerjaan tugas adalah sebagai berikut (per buah) :\n",
"\n",
"1. Arduino UNO : 1\n",
"2. Adafruit Standard LCD - 16x2 White on Blue : 1\n",
"3. SparkFun Pushbutton switch : 1\n",
"4. Resistor 10k ohm : 4\n",
"5. Resistor 220 ohm : 2\n",
"6. Single Turn Potentiometer 100k ohms : 1\n",
"7. Buzzer : 1\n",
"8. Breadboard : 1\n",
"9. Jumper wires : 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Arduino Kitchen Timer bekerja dengan sistem *current mode*, timer tersebut hanya menjalankan satu dari empat mode yang tersedia :\n",
"1. IDLE : timer menunggu input dari pengguna, menunjukan, ini juga mode inisial dari timer\n",
"2. SETUP : untuk masuk ke mode ini, pengguna dapat menekan tombol s4 ('reset button'), untuk menyetel waktu, pengguna dapat menggunakan tombol s3 ('start stop button') untuk menentukan variabel (jam, menit atau waktu) yang ingin diubah, sedangkan tombol s2 ('down button') untuk menurunkan nilai dan s1 ('up button') untuk menaikan variable\n",
"3. RUNNING : untuk masuk ke mode ini, pengguna dapat menekan tombol s3, pada mode ini timer akan berjalan hingga waktu habis, untuk mengakhiri timer secara prematur, tekan s3 atau s4\n",
"4. RINGING : jika waktu timer = 0, maka timer akan mengeluarkan suara hingga pengguna menekan salah satu dari empat tombol"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Berikut diagram cara kerja timer :\n",
"\n",
"![alt text](https://raw.githubusercontent.com/Abidzar16/imka/master/Untitled%20Diagram.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Berikut rancangan Arduino Kitchen Timer :\n",
"\n",
"![alt text](https://hackster.imgix.net/uploads/image_file/file/115553/Fritzing%20Schematics.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"source code yang dipakai :"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"preview-body pygments-syntax arduino\" style=\"height: 430px;\"><div class=\"highlight\"><pre><span></span><span id=\"line-1\">/**************************************************\n",
"</span><span id=\"line-2\"> * Arduino Kitchen Timer v1.0 - <span class=\"m\">2016</span>/01/27\n",
"</span><span id=\"line-3\"> * By Angelo Fiorillo <span class=\"o\">(</span>Rome, IT<span class=\"o\">)</span>\n",
"</span><span id=\"line-4\"> * This work is distributed under the GNU General \n",
"</span><span id=\"line-5\"> * Public License version <span class=\"m\">3</span> or later <span class=\"o\">(</span>GPL3+<span class=\"o\">)</span>\n",
"</span><span id=\"line-6\"> * Please include this credit note <span class=\"k\">if</span> you want to \n",
"</span><span id=\"line-7\"> * re-use any part of this sketch. Respect my work \n",
"</span><span id=\"line-8\"> * as I<span class=\"err\">'</span>ll <span class=\"k\">do</span> with yours.\n",
"</span><span id=\"line-9\"> * Feel free to contact me: afiorillo@gmail.com\n",
"</span><span id=\"line-10\"> * ************************************************/\n",
"</span><span id=\"line-11\"><span class=\"c1\">#include &lt;LiquidCrystal.h&gt;</span>\n",
"</span><span id=\"line-12\"><span class=\"c1\">#include &lt;TimeLib.h&gt; // FIX 2018-08-12 This fixes «‘now’ was not declared in this scope» error</span>\n",
"</span><span id=\"line-13\">LiquidCrystal lcd<span class=\"o\">(</span><span class=\"m\">12</span>, <span class=\"m\">11</span>, <span class=\"m\">5</span>, <span class=\"m\">4</span>, <span class=\"m\">3</span>, <span class=\"m\">2</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-14\">\n",
"</span><span id=\"line-15\">const int <span class=\"nv\">buzzerPin</span> <span class=\"o\">=</span> <span class=\"m\">10</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-16\">const int <span class=\"nv\">resetButtonPin</span> <span class=\"o\">=</span> <span class=\"m\">6</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-17\">const int <span class=\"nv\">startStopButtonPin</span> <span class=\"o\">=</span> <span class=\"m\">7</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-18\">const int <span class=\"nv\">downButtonPin</span> <span class=\"o\">=</span> <span class=\"m\">8</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-19\">const int <span class=\"nv\">upButtonPin</span> <span class=\"o\">=</span> <span class=\"m\">9</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-20\">\n",
"</span><span id=\"line-21\">int <span class=\"nv\">setupHours</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span> // How many hours will count down when started\n",
"</span><span id=\"line-22\">int <span class=\"nv\">setupMinutes</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span> // How many minutes will count down when started\n",
"</span><span id=\"line-23\">int <span class=\"nv\">setupSeconds</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span> // How many seconds will count down when started\n",
"</span><span id=\"line-24\">time_t <span class=\"nv\">setupTime</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-25\">\n",
"</span><span id=\"line-26\">int <span class=\"nv\">currentHours</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-27\">int <span class=\"nv\">currentMinutes</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-28\">int <span class=\"nv\">currentSeconds</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-29\">time_t <span class=\"nv\">currentTime</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-30\">\n",
"</span><span id=\"line-31\">time_t <span class=\"nv\">startTime</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-32\">time_t <span class=\"nv\">elapsedTime</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-33\">\n",
"</span><span id=\"line-34\">int <span class=\"nv\">resetButtonState</span> <span class=\"o\">=</span> LOW<span class=\"p\">;</span>\n",
"</span><span id=\"line-35\">long <span class=\"nv\">resetButtonLongPressCounter</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-36\">int <span class=\"nv\">startStopButtonState</span> <span class=\"o\">=</span> LOW<span class=\"p\">;</span>\n",
"</span><span id=\"line-37\">int <span class=\"nv\">upButtonState</span> <span class=\"o\">=</span> LOW<span class=\"p\">;</span>\n",
"</span><span id=\"line-38\">int <span class=\"nv\">downButtonState</span> <span class=\"o\">=</span> LOW<span class=\"p\">;</span>\n",
"</span><span id=\"line-39\">int <span class=\"nv\">resetButtonPrevState</span> <span class=\"o\">=</span> LOW<span class=\"p\">;</span>\n",
"</span><span id=\"line-40\">int <span class=\"nv\">startStopButtonPrevState</span> <span class=\"o\">=</span> LOW<span class=\"p\">;</span>\n",
"</span><span id=\"line-41\">int <span class=\"nv\">upButtonPrevState</span> <span class=\"o\">=</span> LOW<span class=\"p\">;</span>\n",
"</span><span id=\"line-42\">int <span class=\"nv\">downButtonPrevState</span> <span class=\"o\">=</span> LOW<span class=\"p\">;</span>\n",
"</span><span id=\"line-43\">bool <span class=\"nv\">resetButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-44\">bool <span class=\"nv\">resetButtonLongPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-45\">bool <span class=\"nv\">startStopButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-46\">bool <span class=\"nv\">upButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-47\">bool <span class=\"nv\">downButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-48\">\n",
"</span><span id=\"line-49\">const int <span class=\"nv\">MODE_IDLE</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-50\">const int <span class=\"nv\">MODE_SETUP</span> <span class=\"o\">=</span> <span class=\"m\">1</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-51\">const int <span class=\"nv\">MODE_RUNNING</span> <span class=\"o\">=</span> <span class=\"m\">2</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-52\">const int <span class=\"nv\">MODE_RINGING</span> <span class=\"o\">=</span> <span class=\"m\">3</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-53\">\n",
"</span><span id=\"line-54\">int <span class=\"nv\">currentMode</span> <span class=\"o\">=</span> MODE_IDLE<span class=\"p\">;</span> // <span class=\"nv\">0</span><span class=\"o\">=</span>idle <span class=\"nv\">1</span><span class=\"o\">=</span>setup <span class=\"nv\">2</span><span class=\"o\">=</span>running <span class=\"nv\">3</span><span class=\"o\">=</span>ringing\n",
"</span><span id=\"line-55\"> // Power up --&gt; idle\n",
"</span><span id=\"line-56\"> // Reset --&gt; idle\n",
"</span><span id=\"line-57\"> // Start/Stop --&gt; start or stop counter\n",
"</span><span id=\"line-58\"> // Up / Down --&gt; NOP\n",
"</span><span id=\"line-59\"> // Reset <span class=\"o\">(</span>long press<span class=\"o\">)</span> --&gt; enter setup\n",
"</span><span id=\"line-60\"> // Start/Stop --&gt; data <span class=\"k\">select</span>\n",
"</span><span id=\"line-61\"> // Up --&gt; increase current data value\n",
"</span><span id=\"line-62\"> // Down --&gt; decrease current data value\n",
"</span><span id=\"line-63\"> // Reset --&gt; <span class=\"nb\">exit</span> setup <span class=\"o\">(</span>idle<span class=\"o\">)</span>\n",
"</span><span id=\"line-64\">\n",
"</span><span id=\"line-65\">int <span class=\"nv\">dataSelection</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span> // Currently selected data <span class=\"k\">for</span> edit <span class=\"o\">(</span>setup mode, changes with Start/Stop<span class=\"o\">)</span>\n",
"</span><span id=\"line-66\"> // <span class=\"nv\">0</span><span class=\"o\">=</span>hours <span class=\"o\">(</span><span class=\"m\">00</span>-99<span class=\"o\">)</span> <span class=\"nv\">1</span><span class=\"o\">=</span>minutes <span class=\"o\">(</span><span class=\"m\">00</span>-59<span class=\"o\">)</span> <span class=\"nv\">2</span><span class=\"o\">=</span>seconds <span class=\"o\">(</span><span class=\"m\">00</span>-59<span class=\"o\">)</span>\n",
"</span><span id=\"line-67\">\n",
"</span><span id=\"line-68\">void setup<span class=\"o\">()</span> <span class=\"o\">{</span>\n",
"</span><span id=\"line-69\"> // put your setup code here, to run once:\n",
"</span><span id=\"line-70\"> lcd.begin<span class=\"o\">(</span><span class=\"m\">16</span>, <span class=\"m\">2</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-71\"> pinMode<span class=\"o\">(</span>resetButtonPin, INPUT<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-72\"> pinMode<span class=\"o\">(</span>startStopButtonPin, INPUT<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-73\"> pinMode<span class=\"o\">(</span>upButtonPin, INPUT<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-74\"> pinMode<span class=\"o\">(</span>downButtonPin, INPUT<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-75\"> pinMode<span class=\"o\">(</span>buzzerPin, OUTPUT<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-76\"> Serial.begin<span class=\"o\">(</span><span class=\"m\">9600</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-77\"><span class=\"o\">}</span>\n",
"</span><span id=\"line-78\">\n",
"</span><span id=\"line-79\">void loop<span class=\"o\">()</span> <span class=\"o\">{</span>\n",
"</span><span id=\"line-80\"> // put your main code here, to run repeatedly:\n",
"</span><span id=\"line-81\"> <span class=\"nv\">startStopButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-82\"> <span class=\"nv\">upButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-83\"> <span class=\"nv\">downButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-84\">\n",
"</span><span id=\"line-85\"> /*\n",
"</span><span id=\"line-86\"> * Reset button management\n",
"</span><span id=\"line-87\"> */\n",
"</span><span id=\"line-88\"> <span class=\"nv\">resetButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-89\"> <span class=\"nv\">resetButtonLongPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-90\"> <span class=\"nv\">resetButtonState</span> <span class=\"o\">=</span> digitalRead<span class=\"o\">(</span>resetButtonPin<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-91\"> <span class=\"k\">if</span><span class=\"o\">(</span>resetButtonState !<span class=\"o\">=</span> resetButtonPrevState<span class=\"o\">)</span>\n",
"</span><span id=\"line-92\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-93\"> <span class=\"nv\">resetButtonPressed</span> <span class=\"o\">=</span> <span class=\"nv\">resetButtonState</span> <span class=\"o\">==</span> HIGH<span class=\"p\">;</span>\n",
"</span><span id=\"line-94\"> <span class=\"nv\">resetButtonPrevState</span> <span class=\"o\">=</span> resetButtonState<span class=\"p\">;</span>\n",
"</span><span id=\"line-95\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-96\"> <span class=\"k\">else</span> // Long press management...\n",
"</span><span id=\"line-97\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-98\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">resetButtonState</span> <span class=\"o\">==</span> HIGH<span class=\"o\">)</span>\n",
"</span><span id=\"line-99\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-100\"> resetButtonLongPressCounter++<span class=\"p\">;</span>\n",
"</span><span id=\"line-101\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">resetButtonLongPressCounter</span> <span class=\"o\">==</span> <span class=\"m\">100</span><span class=\"o\">)</span>\n",
"</span><span id=\"line-102\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-103\"> <span class=\"nv\">resetButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-104\"> <span class=\"nv\">resetButtonLongPressed</span> <span class=\"o\">=</span> true<span class=\"p\">;</span>\n",
"</span><span id=\"line-105\"> <span class=\"nv\">resetButtonLongPressCounter</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-106\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-107\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-108\"> <span class=\"k\">else</span>\n",
"</span><span id=\"line-109\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-110\"> <span class=\"nv\">resetButtonLongPressCounter</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-111\"> <span class=\"nv\">resetButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-112\"> <span class=\"nv\">resetButtonLongPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-113\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-114\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-115\">\n",
"</span><span id=\"line-116\"> /*\n",
"</span><span id=\"line-117\"> * Start/Stop button management\n",
"</span><span id=\"line-118\"> */\n",
"</span><span id=\"line-119\"> <span class=\"nv\">startStopButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-120\"> <span class=\"nv\">startStopButtonState</span> <span class=\"o\">=</span> digitalRead<span class=\"o\">(</span>startStopButtonPin<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-121\"> <span class=\"k\">if</span><span class=\"o\">(</span>startStopButtonState !<span class=\"o\">=</span> startStopButtonPrevState<span class=\"o\">)</span>\n",
"</span><span id=\"line-122\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-123\"> <span class=\"nv\">startStopButtonPressed</span> <span class=\"o\">=</span> <span class=\"nv\">startStopButtonState</span> <span class=\"o\">==</span> HIGH<span class=\"p\">;</span>\n",
"</span><span id=\"line-124\"> <span class=\"nv\">startStopButtonPrevState</span> <span class=\"o\">=</span> startStopButtonState<span class=\"p\">;</span>\n",
"</span><span id=\"line-125\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-126\">\n",
"</span><span id=\"line-127\"> /*\n",
"</span><span id=\"line-128\"> * Down button management\n",
"</span><span id=\"line-129\"> */\n",
"</span><span id=\"line-130\"> <span class=\"nv\">downButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-131\"> <span class=\"nv\">downButtonState</span> <span class=\"o\">=</span> digitalRead<span class=\"o\">(</span>downButtonPin<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-132\"> <span class=\"k\">if</span><span class=\"o\">(</span>downButtonState !<span class=\"o\">=</span> downButtonPrevState<span class=\"o\">)</span>\n",
"</span><span id=\"line-133\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-134\"> <span class=\"nv\">downButtonPressed</span> <span class=\"o\">=</span> <span class=\"nv\">downButtonState</span> <span class=\"o\">==</span> HIGH<span class=\"p\">;</span>\n",
"</span><span id=\"line-135\"> <span class=\"nv\">downButtonPrevState</span> <span class=\"o\">=</span> downButtonState<span class=\"p\">;</span>\n",
"</span><span id=\"line-136\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-137\">\n",
"</span><span id=\"line-138\"> /*\n",
"</span><span id=\"line-139\"> * Up button management\n",
"</span><span id=\"line-140\"> */\n",
"</span><span id=\"line-141\"> <span class=\"nv\">upButtonPressed</span> <span class=\"o\">=</span> false<span class=\"p\">;</span>\n",
"</span><span id=\"line-142\"> <span class=\"nv\">upButtonState</span> <span class=\"o\">=</span> digitalRead<span class=\"o\">(</span>upButtonPin<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-143\"> <span class=\"k\">if</span><span class=\"o\">(</span>upButtonState !<span class=\"o\">=</span> upButtonPrevState<span class=\"o\">)</span>\n",
"</span><span id=\"line-144\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-145\"> <span class=\"nv\">upButtonPressed</span> <span class=\"o\">=</span> <span class=\"nv\">upButtonState</span> <span class=\"o\">==</span> HIGH<span class=\"p\">;</span>\n",
"</span><span id=\"line-146\"> <span class=\"nv\">upButtonPrevState</span> <span class=\"o\">=</span> upButtonState<span class=\"p\">;</span>\n",
"</span><span id=\"line-147\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-148\">\n",
"</span><span id=\"line-149\"> /*\n",
"</span><span id=\"line-150\"> * Mode management\n",
"</span><span id=\"line-151\"> */\n",
"</span><span id=\"line-152\"> switch<span class=\"o\">(</span>currentMode<span class=\"o\">)</span>\n",
"</span><span id=\"line-153\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-154\"> <span class=\"k\">case</span> MODE_IDLE:\n",
"</span><span id=\"line-155\"> <span class=\"k\">if</span><span class=\"o\">(</span>resetButtonPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-156\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-157\"> Reset<span class=\"o\">()</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-158\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-159\"> <span class=\"k\">if</span><span class=\"o\">(</span>resetButtonLongPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-160\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-161\"> <span class=\"nv\">currentMode</span> <span class=\"o\">=</span> MODE_SETUP<span class=\"p\">;</span>\n",
"</span><span id=\"line-162\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-163\"> <span class=\"k\">if</span><span class=\"o\">(</span>startStopButtonPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-164\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-165\"> <span class=\"nv\">currentMode</span> <span class=\"o\">=</span> <span class=\"nv\">currentMode</span> <span class=\"o\">==</span> MODE_IDLE ? MODE_RUNNING : MODE_IDLE<span class=\"p\">;</span>\n",
"</span><span id=\"line-166\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">currentMode</span> <span class=\"o\">==</span> MODE_RUNNING<span class=\"o\">)</span>\n",
"</span><span id=\"line-167\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-168\"> // STARTING TIMER!\n",
"</span><span id=\"line-169\"> <span class=\"nv\">startTime</span> <span class=\"o\">=</span> now<span class=\"o\">()</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-170\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-171\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-172\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-173\">\n",
"</span><span id=\"line-174\"> <span class=\"k\">case</span> MODE_SETUP:\n",
"</span><span id=\"line-175\"> <span class=\"k\">if</span><span class=\"o\">(</span>resetButtonPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-176\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-177\"> // Exit setup mode\n",
"</span><span id=\"line-178\"> <span class=\"nv\">setupTime</span> <span class=\"o\">=</span> setupSeconds + <span class=\"o\">(</span><span class=\"m\">60</span> * setupMinutes<span class=\"o\">)</span> + <span class=\"o\">(</span><span class=\"m\">3600</span> * setupHours<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-179\"> <span class=\"nv\">currentHours</span> <span class=\"o\">=</span> setupHours<span class=\"p\">;</span>\n",
"</span><span id=\"line-180\"> <span class=\"nv\">currentMinutes</span> <span class=\"o\">=</span> setupMinutes<span class=\"p\">;</span>\n",
"</span><span id=\"line-181\"> <span class=\"nv\">currentSeconds</span> <span class=\"o\">=</span> setupSeconds<span class=\"p\">;</span>\n",
"</span><span id=\"line-182\"> <span class=\"nv\">dataSelection</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-183\"> <span class=\"nv\">currentMode</span> <span class=\"o\">=</span> MODE_IDLE<span class=\"p\">;</span>\n",
"</span><span id=\"line-184\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-185\"> <span class=\"k\">if</span><span class=\"o\">(</span>startStopButtonPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-186\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-187\"> // Select next data to adjust\n",
"</span><span id=\"line-188\"> dataSelection++<span class=\"p\">;</span>\n",
"</span><span id=\"line-189\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">dataSelection</span> <span class=\"o\">==</span> <span class=\"m\">3</span><span class=\"o\">)</span>\n",
"</span><span id=\"line-190\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-191\"> <span class=\"nv\">dataSelection</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-192\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-193\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-194\"> <span class=\"k\">if</span><span class=\"o\">(</span>downButtonPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-195\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-196\"> switch<span class=\"o\">(</span>dataSelection<span class=\"o\">)</span>\n",
"</span><span id=\"line-197\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-198\"> <span class=\"k\">case</span> <span class=\"m\">0</span>: // hours\n",
"</span><span id=\"line-199\"> setupHours--<span class=\"p\">;</span>\n",
"</span><span id=\"line-200\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">setupHours</span> <span class=\"o\">==</span> -1<span class=\"o\">)</span>\n",
"</span><span id=\"line-201\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-202\"> <span class=\"nv\">setupHours</span> <span class=\"o\">=</span> <span class=\"m\">99</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-203\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-204\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-205\"> <span class=\"k\">case</span> <span class=\"m\">1</span>: // minutes\n",
"</span><span id=\"line-206\"> setupMinutes--<span class=\"p\">;</span>\n",
"</span><span id=\"line-207\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">setupMinutes</span> <span class=\"o\">==</span> -1<span class=\"o\">)</span>\n",
"</span><span id=\"line-208\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-209\"> <span class=\"nv\">setupMinutes</span> <span class=\"o\">=</span> <span class=\"m\">59</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-210\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-211\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-212\"> <span class=\"k\">case</span> <span class=\"m\">2</span>: // seconds\n",
"</span><span id=\"line-213\"> setupSeconds--<span class=\"p\">;</span>\n",
"</span><span id=\"line-214\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">setupSeconds</span> <span class=\"o\">==</span> -1<span class=\"o\">)</span>\n",
"</span><span id=\"line-215\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-216\"> <span class=\"nv\">setupSeconds</span> <span class=\"o\">=</span> <span class=\"m\">59</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-217\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-218\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-219\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-220\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-221\"> <span class=\"k\">if</span><span class=\"o\">(</span>upButtonPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-222\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-223\"> switch<span class=\"o\">(</span>dataSelection<span class=\"o\">)</span>\n",
"</span><span id=\"line-224\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-225\"> <span class=\"k\">case</span> <span class=\"m\">0</span>: // hours\n",
"</span><span id=\"line-226\"> setupHours++<span class=\"p\">;</span>\n",
"</span><span id=\"line-227\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">setupHours</span> <span class=\"o\">==</span> <span class=\"m\">100</span><span class=\"o\">)</span>\n",
"</span><span id=\"line-228\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-229\"> <span class=\"nv\">setupHours</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-230\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-231\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-232\"> <span class=\"k\">case</span> <span class=\"m\">1</span>: // minutes\n",
"</span><span id=\"line-233\"> setupMinutes++<span class=\"p\">;</span>\n",
"</span><span id=\"line-234\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">setupMinutes</span> <span class=\"o\">==</span> <span class=\"m\">60</span><span class=\"o\">)</span>\n",
"</span><span id=\"line-235\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-236\"> <span class=\"nv\">setupMinutes</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-237\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-238\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-239\"> <span class=\"k\">case</span> <span class=\"m\">2</span>: // seconds\n",
"</span><span id=\"line-240\"> setupSeconds++<span class=\"p\">;</span>\n",
"</span><span id=\"line-241\"> <span class=\"k\">if</span><span class=\"o\">(</span><span class=\"nv\">setupSeconds</span> <span class=\"o\">==</span> <span class=\"m\">60</span><span class=\"o\">)</span>\n",
"</span><span id=\"line-242\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-243\"> <span class=\"nv\">setupSeconds</span> <span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-244\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-245\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-246\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-247\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-248\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-249\"> \n",
"</span><span id=\"line-250\"> <span class=\"k\">case</span> MODE_RUNNING:\n",
"</span><span id=\"line-251\"> <span class=\"k\">if</span><span class=\"o\">(</span>startStopButtonPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-252\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-253\"> <span class=\"nv\">currentMode</span> <span class=\"o\">=</span> MODE_IDLE<span class=\"p\">;</span>\n",
"</span><span id=\"line-254\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-255\"> <span class=\"k\">if</span><span class=\"o\">(</span>resetButtonPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-256\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-257\"> Reset<span class=\"o\">()</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-258\"> <span class=\"nv\">currentMode</span> <span class=\"o\">=</span> MODE_IDLE<span class=\"p\">;</span>\n",
"</span><span id=\"line-259\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-260\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-261\">\n",
"</span><span id=\"line-262\"> <span class=\"k\">case</span> MODE_RINGING:\n",
"</span><span id=\"line-263\"> <span class=\"k\">if</span><span class=\"o\">(</span>resetButtonPressed <span class=\"o\">||</span> startStopButtonPressed <span class=\"o\">||</span> downButtonPressed <span class=\"o\">||</span> upButtonPressed<span class=\"o\">)</span>\n",
"</span><span id=\"line-264\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-265\"> <span class=\"nv\">currentMode</span> <span class=\"o\">=</span> MODE_IDLE<span class=\"p\">;</span>\n",
"</span><span id=\"line-266\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-267\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-268\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-269\">\n",
"</span><span id=\"line-270\"> /*\n",
"</span><span id=\"line-271\"> * Time management\n",
"</span><span id=\"line-272\"> */\n",
"</span><span id=\"line-273\"> switch<span class=\"o\">(</span>currentMode<span class=\"o\">)</span>\n",
"</span><span id=\"line-274\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-275\"> <span class=\"k\">case</span> MODE_IDLE:\n",
"</span><span id=\"line-276\"> <span class=\"k\">case</span> MODE_SETUP:\n",
"</span><span id=\"line-277\"> // NOP\n",
"</span><span id=\"line-278\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-279\"> <span class=\"k\">case</span> MODE_RUNNING:\n",
"</span><span id=\"line-280\"> <span class=\"nv\">currentTime</span> <span class=\"o\">=</span> setupTime - <span class=\"o\">(</span>now<span class=\"o\">()</span> - startTime<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-281\"> <span class=\"k\">if</span><span class=\"o\">(</span>currentTime &lt;<span class=\"o\">=</span> <span class=\"m\">0</span><span class=\"o\">)</span>\n",
"</span><span id=\"line-282\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-283\"> <span class=\"nv\">currentMode</span> <span class=\"o\">=</span> MODE_RINGING<span class=\"p\">;</span>\n",
"</span><span id=\"line-284\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-285\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-286\"> <span class=\"k\">case</span> MODE_RINGING:\n",
"</span><span id=\"line-287\"> analogWrite<span class=\"o\">(</span>buzzerPin, <span class=\"m\">20</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-288\"> delay<span class=\"o\">(</span><span class=\"m\">20</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-289\"> analogWrite<span class=\"o\">(</span>buzzerPin, <span class=\"m\">0</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-290\"> delay<span class=\"o\">(</span><span class=\"m\">40</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-291\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-292\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-293\">\n",
"</span><span id=\"line-294\"> /*\n",
"</span><span id=\"line-295\"> * LCD management\n",
"</span><span id=\"line-296\"> */\n",
"</span><span id=\"line-297\"> //lcd.clear<span class=\"o\">()</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-298\"> lcd.setCursor<span class=\"o\">(</span><span class=\"m\">0</span>, <span class=\"m\">0</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-299\"> switch<span class=\"o\">(</span>currentMode<span class=\"o\">)</span>\n",
"</span><span id=\"line-300\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-301\"> <span class=\"k\">case</span> MODE_IDLE:\n",
"</span><span id=\"line-302\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\"Timer ready \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-303\"> lcd.setCursor<span class=\"o\">(</span><span class=\"m\">0</span>, <span class=\"m\">1</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-304\"> lcd.print<span class=\"o\">(</span>currentHours<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-305\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\" \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-306\"> lcd.print<span class=\"o\">(</span>currentMinutes<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-307\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\" \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-308\"> lcd.print<span class=\"o\">(</span>currentSeconds<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-309\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\" \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-310\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-311\"> <span class=\"k\">case</span> MODE_SETUP:\n",
"</span><span id=\"line-312\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\"Setup mode: \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-313\"> switch<span class=\"o\">(</span>dataSelection<span class=\"o\">)</span>\n",
"</span><span id=\"line-314\"> <span class=\"o\">{</span>\n",
"</span><span id=\"line-315\"> <span class=\"k\">case</span> <span class=\"m\">0</span>:\n",
"</span><span id=\"line-316\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\"HRS \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-317\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-318\"> <span class=\"k\">case</span> <span class=\"m\">1</span>:\n",
"</span><span id=\"line-319\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\"MINS\"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-320\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-321\"> <span class=\"k\">case</span> <span class=\"m\">2</span>:\n",
"</span><span id=\"line-322\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\"SECS\"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-323\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-324\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-325\"> lcd.setCursor<span class=\"o\">(</span><span class=\"m\">0</span>, <span class=\"m\">1</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-326\"> lcd.print<span class=\"o\">(</span>setupHours<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-327\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\" \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-328\"> lcd.print<span class=\"o\">(</span>setupMinutes<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-329\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\" \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-330\"> lcd.print<span class=\"o\">(</span>setupSeconds<span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-331\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\" \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-332\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-333\"> <span class=\"k\">case</span> MODE_RUNNING:\n",
"</span><span id=\"line-334\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\"Counting down...\"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-335\"> lcd.setCursor<span class=\"o\">(</span><span class=\"m\">0</span>, <span class=\"m\">1</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-336\"> <span class=\"k\">if</span><span class=\"o\">(</span>hour<span class=\"o\">(</span>currentTime<span class=\"o\">)</span> &lt; <span class=\"m\">10</span><span class=\"o\">)</span> lcd.print<span class=\"o\">(</span><span class=\"s2\">\"0\"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-337\"> lcd.print<span class=\"o\">(</span>hour<span class=\"o\">(</span>currentTime<span class=\"o\">))</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-338\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\":\"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-339\"> <span class=\"k\">if</span><span class=\"o\">(</span>minute<span class=\"o\">(</span>currentTime<span class=\"o\">)</span> &lt; <span class=\"m\">10</span><span class=\"o\">)</span> lcd.print<span class=\"o\">(</span><span class=\"s2\">\"0\"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-340\"> lcd.print<span class=\"o\">(</span>minute<span class=\"o\">(</span>currentTime<span class=\"o\">))</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-341\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\":\"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-342\"> <span class=\"k\">if</span><span class=\"o\">(</span>second<span class=\"o\">(</span>currentTime<span class=\"o\">)</span> &lt; <span class=\"m\">10</span><span class=\"o\">)</span> lcd.print<span class=\"o\">(</span><span class=\"s2\">\"0\"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-343\"> lcd.print<span class=\"o\">(</span>second<span class=\"o\">(</span>currentTime<span class=\"o\">))</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-344\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-345\"> <span class=\"k\">case</span> MODE_RINGING:\n",
"</span><span id=\"line-346\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\" RING-RING! \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-347\"> lcd.setCursor<span class=\"o\">(</span><span class=\"m\">0</span>, <span class=\"m\">1</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-348\"> lcd.print<span class=\"o\">(</span><span class=\"s2\">\" \"</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-349\"> break<span class=\"p\">;</span>\n",
"</span><span id=\"line-350\"> <span class=\"o\">}</span>\n",
"</span><span id=\"line-351\"> delay<span class=\"o\">(</span><span class=\"m\">10</span><span class=\"o\">)</span><span class=\"p\">;</span>\n",
"</span><span id=\"line-352\"><span class=\"o\">}</span>\n",
"</span><span id=\"line-353\">\n",
"</span><span id=\"line-354\">void Reset<span class=\"o\">()</span>\n",
"</span><span id=\"line-355\"><span class=\"o\">{</span>\n",
"</span><span id=\"line-356\"> <span class=\"nv\">currentMode</span> <span class=\"o\">=</span> MODE_IDLE<span class=\"p\">;</span>\n",
"</span><span id=\"line-357\"> <span class=\"nv\">currentHours</span> <span class=\"o\">=</span> setupHours<span class=\"p\">;</span>\n",
"</span><span id=\"line-358\"> <span class=\"nv\">currentMinutes</span> <span class=\"o\">=</span> setupMinutes<span class=\"p\">;</span>\n",
"</span><span id=\"line-359\"> <span class=\"nv\">currentSeconds</span> <span class=\"o\">=</span> setupSeconds<span class=\"p\">;</span>\n",
"</span><span id=\"line-360\"><span class=\"o\">}</span>\n",
"</span></pre></div></div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"sumber referensi : https://www.hackster.io/i-and-myself/arduino-kitchen-timer-db8ba6"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment