{"id":987,"date":"2018-01-26T23:56:50","date_gmt":"2018-01-26T22:56:50","guid":{"rendered":"http:\/\/yarogniew.net\/arduino\/?p=987"},"modified":"2018-02-01T15:21:03","modified_gmt":"2018-02-01T14:21:03","slug":"funkcje-tone-i-notone-czyli-gramy-melodyjki","status":"publish","type":"post","link":"https:\/\/arduino.net.pl\/index.php\/funkcje-tone-i-notone-czyli-gramy-melodyjki\/","title":{"rendered":"Gramy melodyjki czyli poznajemy funkcj\u0119 tone() i bibliotek\u0119 pitches.h"},"content":{"rendered":"<p>Polecenie <em>tone()<\/em> s\u0142u\u017cy do generowania d\u017awi\u0119k\u00f3w przez dowoln\u0105 p\u0142ytk\u0119 Arduino z ATmega328.\u00a0Mo\u017cna go u\u017cywa\u0107 te\u017c ze s\u0142abszym procesorem ATtiny85, ale o tym p\u00f3\u017aniej.<\/p>\n<p>Poni\u017cej specyfikacja:<\/p>\n<p><a href=\"https:\/\/www.arduino.cc\/en\/Tutorial\/toneMelody\">https:\/\/www.arduino.cc\/en\/Tutorial\/toneMelody<\/a><\/p>\n<h3>PO\u0141\u0104CZENIE:<\/h3>\n<p><a href=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/01\/fone_sch.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-999\" src=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/01\/fone_sch.png\" alt=\"\" width=\"682\" height=\"546\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/01\/fone_sch.png 682w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/01\/fone_sch-300x240.png 300w\" sizes=\"auto, (max-width: 682px) 100vw, 682px\" \/><\/a><\/p>\n<h3>KOD:<\/h3>\n<p>Aby nasz kod zadzia\u0142a\u0142 musimy do\u0142\u0105czy\u0107 bibliotek\u0119\u00a0<em>pitches.h.<\/em><br \/>\nW oknie programu Arduino IDE otwieramy zak\u0142adk\u0119 New Tab, wpisujemy nazw\u0119 <em>pitches.h<\/em><br \/>\n<a href=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/01\/Zrzut-ekranu-2018-01-27-o-00.13.00.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1000\" src=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/01\/Zrzut-ekranu-2018-01-27-o-00.13.00.png\" alt=\"\" width=\"310\" height=\"307\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/01\/Zrzut-ekranu-2018-01-27-o-00.13.00.png 310w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/01\/Zrzut-ekranu-2018-01-27-o-00.13.00-150x150.png 150w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/01\/Zrzut-ekranu-2018-01-27-o-00.13.00-300x297.png 300w\" sizes=\"auto, (max-width: 310px) 100vw, 310px\" \/><\/a><\/p>\n<p>i kopiujemy zawarto\u015b\u0107 okna poni\u017cej<\/p>\n<pre class=\"brush: plain; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">\r\n \/*************************************************\r\n * Public Constants\r\n *************************************************\/\r\n\r\n#define NOTE_B0  31\r\n#define NOTE_C1  33\r\n#define NOTE_CS1 35\r\n#define NOTE_D1  37\r\n#define NOTE_DS1 39\r\n#define NOTE_E1  41\r\n#define NOTE_F1  44\r\n#define NOTE_FS1 46\r\n#define NOTE_G1  49\r\n#define NOTE_GS1 52\r\n#define NOTE_A1  55\r\n#define NOTE_AS1 58\r\n#define NOTE_B1  62\r\n#define NOTE_C2  65\r\n#define NOTE_CS2 69\r\n#define NOTE_D2  73\r\n#define NOTE_DS2 78\r\n#define NOTE_E2  82\r\n#define NOTE_F2  87\r\n#define NOTE_FS2 93\r\n#define NOTE_G2  98\r\n#define NOTE_GS2 104\r\n#define NOTE_A2  110\r\n#define NOTE_AS2 117\r\n#define NOTE_B2  123\r\n#define NOTE_C3  131\r\n#define NOTE_CS3 139\r\n#define NOTE_D3  147\r\n#define NOTE_DS3 156\r\n#define NOTE_E3  165\r\n#define NOTE_F3  175\r\n#define NOTE_FS3 185\r\n#define NOTE_G3  196\r\n#define NOTE_GS3 208\r\n#define NOTE_A3  220\r\n#define NOTE_AS3 233\r\n#define NOTE_B3  247\r\n#define NOTE_C4  262\r\n#define NOTE_CS4 277\r\n#define NOTE_D4  294\r\n#define NOTE_DS4 311\r\n#define NOTE_E4  330\r\n#define NOTE_F4  349\r\n#define NOTE_FS4 370\r\n#define NOTE_G4  392\r\n#define NOTE_GS4 415\r\n#define NOTE_A4  440\r\n#define NOTE_AS4 466\r\n#define NOTE_B4  494\r\n#define NOTE_C5  523\r\n#define NOTE_CS5 554\r\n#define NOTE_D5  587\r\n#define NOTE_DS5 622\r\n#define NOTE_E5  659\r\n#define NOTE_F5  698\r\n#define NOTE_FS5 740\r\n#define NOTE_G5  784\r\n#define NOTE_GS5 831\r\n#define NOTE_A5  880\r\n#define NOTE_AS5 932\r\n#define NOTE_B5  988\r\n#define NOTE_C6  1047\r\n#define NOTE_CS6 1109\r\n#define NOTE_D6  1175\r\n#define NOTE_DS6 1245\r\n#define NOTE_E6  1319\r\n#define NOTE_F6  1397\r\n#define NOTE_FS6 1480\r\n#define NOTE_G6  1568\r\n#define NOTE_GS6 1661\r\n#define NOTE_A6  1760\r\n#define NOTE_AS6 1865\r\n#define NOTE_B6  1976\r\n#define NOTE_C7  2093\r\n#define NOTE_CS7 2217\r\n#define NOTE_D7  2349\r\n#define NOTE_DS7 2489\r\n#define NOTE_E7  2637\r\n#define NOTE_F7  2794\r\n#define NOTE_FS7 2960\r\n#define NOTE_G7  3136\r\n#define NOTE_GS7 3322\r\n#define NOTE_A7  3520\r\n#define NOTE_AS7 3729\r\n#define NOTE_B7  3951\r\n#define NOTE_C8  4186\r\n#define NOTE_CS8 4435\r\n#define NOTE_D8  4699\r\n#define NOTE_DS8 4978\r\n<\/pre>\n<p>Kod, kt\u00f3ry pochodzi ze strony <a href=\"https:\/\/www.arduino.cc\/en\/Tutorial\/toneMelody\" target=\"_blank\" rel=\"noopener\">arduino.cc<\/a> nieco zmodyfikowa\u0142em. Postanowi\u0142em zagra\u0107 kilka standard\u00f3w i kawa\u0142eczek walca ze Suity nr.2 Szostakowicza.<\/p>\n<pre class=\"brush: plain; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">\r\n\r\n#include &quot;pitches.h&quot;\r\n\r\nvoid setup(){\r\npinMode(8, OUTPUT);\r\n}\r\n\r\nvoid loop(){\r\n\r\nplayMelody1();\r\ndelay(1000);\r\nplayMelody2();\r\ndelay(1000);\r\nplayMelody3();\r\ndelay(1000);\r\n}\r\n\r\nvoid playMelody1(){\r\n\r\n\/\/Honeysuckle rose standard\r\n\r\nint melody&#x5B;] = {\r\nNOTE_C5, NOTE_AS4, NOTE_D4, NOTE_F4, NOTE_A4,\r\nNOTE_C5, NOTE_AS4, NOTE_D4, NOTE_F4, NOTE_A4,\r\nNOTE_C5, NOTE_AS4, NOTE_D4, NOTE_F4, NOTE_A4, NOTE_A4, NOTE_A4,\r\nNOTE_A4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_F4, NOTE_F4,\r\nNOTE_A4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, 0\r\n};\r\n\r\nint noteDurations&#x5B;] = {\r\n2, 1, 2, 1, 6,\r\n2, 1, 2, 1, 6,\r\n2, 1, 2, 1, 3, 3, 6,\r\n2, 1, 2, 1, 3, 3, 12,\r\n2, 1, 2, 1, 12, 12\r\n};\r\n\r\nfor (int thisNote = 0; thisNote &amp;amp;amp;lt; sizeof(melody)\/sizeof(int); thisNote++) {\r\n\r\nint noteDuration = 100 * noteDurations&#x5B;thisNote];\r\ntone(8, melody&#x5B;thisNote], noteDuration);\r\n\r\n\/\/ to distinguish the notes, set a minimum time between them.\r\n\/\/ the note's duration + 30% seems to work well:\r\nint pauseBetweenNotes = noteDuration * 1.30;\r\ndelay(pauseBetweenNotes);\r\n\r\nnoTone(8);\r\n}\r\n}\r\n\r\nvoid playMelody2(){\r\n\r\n\/\/\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0414\u043c\u0438\u0442\u0440\u0438\u0435\u0432\u0438\u0447 \u0428\u043e\u0441\u0442\u0430\u043a\u043e\u0432\u0438\u0447 walc nr.2 \r\nint melody&#x5B;] = {&lt;span data-mce-type=&quot;bookmark&quot; style=&quot;display: inline-block; width: 0px; overflow: hidden; line-height: 0;&quot; class=&quot;mce_SELRES_start&quot;&gt;&lt;\/span&gt;NOTE_A5, NOTE_F5, NOTE_E5, NOTE_D5};\r\nint noteDurations&#x5B;] = {3, 2, 1, 6};\r\n\r\nfor (int thisNote = 0; thisNote &amp;amp;amp;lt; sizeof(melody)\/sizeof(int); thisNote++) {\r\nint noteDuration = 200 * noteDurations&#x5B;thisNote];\r\ntone(8, melody&#x5B;thisNote], noteDuration);\r\n\r\nint pauseBetweenNotes = noteDuration * 1.3;\r\ndelay(pauseBetweenNotes);\r\n\r\nnoTone(8);\r\n}\r\n}\r\n\r\nvoid playMelody3(){\r\n\r\n\/\/Tea for two\r\n\r\nint melody&#x5B;] = {\r\nNOTE_F4, NOTE_D4, NOTE_E4, NOTE_D4, NOTE_F4, NOTE_D4, NOTE_E4, NOTE_C4,\r\nNOTE_E4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_C4,\r\nNOTE_F4, NOTE_D4, NOTE_E4, NOTE_D4, NOTE_F4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A4, 0\r\n};\r\n\r\nint noteDurations&#x5B;] = {\r\n3, 1, 3, 1, 3, 1, 3, 1,\r\n3, 1, 3, 1, 3, 1, 3, 1,\r\n3, 1, 3, 1, 3, 1, 3, 1, 8, 8\r\n};\r\n\r\nfor (int thisNote = 0; thisNote &amp;amp;amp;lt; sizeof(melody)\/sizeof(int); thisNote++) {\r\n\r\nint noteDuration = 170 * noteDurations&#x5B;thisNote];\r\ntone(8, melody&#x5B;thisNote], noteDuration);\r\n\r\n\/\/ to distinguish the notes, set a minimum time between them.\r\n\/\/ the note's duration + 30% seems to work well:\r\nint pauseBetweenNotes = noteDuration * 1.30;\r\ndelay(pauseBetweenNotes);\r\n\r\nnoTone(8);\r\n}\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Polecenie tone() s\u0142u\u017cy do generowania d\u017awi\u0119k\u00f3w przez dowoln\u0105 p\u0142ytk\u0119 Arduino z ATmega328.\u00a0Mo\u017cna go u\u017cywa\u0107 te\u017c ze s\u0142abszym procesorem ATtiny85, ale o tym p\u00f3\u017aniej. Poni\u017cej specyfikacja: https:\/\/www.arduino.cc\/en\/Tutorial\/toneMelody PO\u0141\u0104CZENIE: KOD: Aby nasz&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-987","post","type-post","status-publish","format-standard","hentry","category-arduino"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/comments?post=987"}],"version-history":[{"count":14,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/987\/revisions"}],"predecessor-version":[{"id":1073,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/987\/revisions\/1073"}],"wp:attachment":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/media?parent=987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/categories?post=987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/tags?post=987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}