{"id":1373,"date":"2019-06-10T23:26:41","date_gmt":"2019-06-10T23:26:41","guid":{"rendered":"http:\/\/mikrobotik.com\/wp2\/?p=1373"},"modified":"2023-03-31T16:17:31","modified_gmt":"2023-03-31T13:17:31","slug":"arduino_sdcard_ses_dosya_kullan","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2019\/06\/10\/arduino_sdcard_ses_dosya_kullan\/","title":{"rendered":"Arduino,sdcard kullan\u0131m\u0131, sd card ses dosyas\u0131 kullan\u0131m\u0131. Arduino otopark kap\u0131 projesi."},"content":{"rendered":"<p>Bu konumuzu SD CARD lara ay\u0131rd\u0131m. Facebook gruplar\u0131nda zaman zaman sorulan sorulara cevap verebilmek i\u00e7in deneme yapmam gerekiyordu. Bu deneme i\u00e7in \u00f6ncelikle sd card \u00e7al\u0131\u015fmas\u0131n\u0131 g\u00f6rmeliydim. SDcard lar\u0131n FAT system denilen dosya sistemini kulland\u0131\u011f\u0131n\u0131 biliyordum. FAT sistemlerini inceleyip kendim denemek istedi\u011fimde, bir \u00e7ok fonksiyonu kendim yazmam gerekiyordu. Sadece deneme i\u00e7in bu kadar fonksiyonu yazmak yerine, Arduino ile sdcard k\u00fct\u00fcphanesini kullanmaya karar verdim.<\/p>\n<p>Bu k\u00fct\u00fcphane zaten Arduino ide \u00fczerinde kendi \u00f6rnek dosyalar\u0131yla kullan\u0131labiliyordu. Tabii ki bu \u015fekilde g\u00f6rmek beni tatmin etmedi. Ba\u015flang\u0131\u00e7ta okuyup yazabildi\u011fimi g\u00f6rd\u00fcm. Fakat i\u00e7eri\u011fini al\u0131p istedi\u011fim gibi \u015fekillendirmek ve gerekli bilgileri alabilmek \u00f6nemliydi.<br \/>\nBu konuda \u00e7al\u0131\u015fmalara devam ettik\u00e7e, sdcard i\u00e7eri\u011fini okuyan ve i\u00e7erisindeki ses dosyalar\u0131n\u0131 oynatan, k\u00fct\u00fcphaneler oldu\u011funu g\u00f6rd\u00fcm. Zaten bu tip sorularda gruplarda geliyordu.<\/p>\n<p>Sorularda ayn\u0131 program\u0131 kullanmam\u0131za ra\u011fmen neden okumad\u0131\u011f\u0131 konusuna cevap vermek i\u00e7in format\u0131 uyumsuzdur ya da kapasite sorunu vard\u0131r diyordum. <span style=\"color: #ff6600;\">A\u015fa\u011f\u0131da ise bunlar\u0131n cevaplar\u0131n\u0131 bulacaks\u0131n\u0131z.\u00a0<\/span><br \/>\n<span style=\"color: #ff6600;\">Ayr\u0131ca <strong>ARDUINO+SDCARD+WAV SES DOSYASI+iBUTTON+IR<\/strong> <strong>sens\u00f6r+EASYLCD<\/strong> kullan\u0131larak ger\u00e7ekle\u015ftirilen OTOPARK KAPISI projesini g\u00f6receksiniz.<\/span><\/p>\n<p>\u00d6ncelikle sdcard lar\u0131 tan\u0131yal\u0131m. SDCARD, \u00e7e\u015fitli fiziksel g\u00f6r\u00fcn\u00fcme, \u00e7e\u015fitli kapasiteye, \u00e7e\u015fitli h\u0131zlara sahip olabilir. K\u00fct\u00fcphanemiz ne kadar\u0131n\u0131 destekliyor? Ayr\u0131ca hangi dosya sistemlerini destekliyor?<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-1375 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sdcard_cesit.jpg\" alt=\"\" width=\"669\" height=\"266\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 669px; --smush-placeholder-aspect-ratio: 669\/266;\" \/>Yukar\u0131da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz \u00fczere sd olan 2gb l\u0131k bir kart\u0131 fat32 yaparsan\u0131z g\u00f6rmeyebilir. Ya da g\u00f6rse bile sorun ya\u015fayabilirsiniz. Ben \u00e7al\u0131\u015fmalar\u0131mda 2GB MicroSD kart kulland\u0131m.\u00a0 Kart\u0131 SDformatter denilen program ile formatlad\u0131m. Orjinal halinin FAT16 oldu\u011funu g\u00f6rd\u00fcm.\u00a0 <a href=\"https:\/\/www.sdcard.org\/downloads\/formatter\/\" target=\"_blank\" rel=\"noopener\"><strong>SDFORMATTER program\u0131n\u0131 buradan indirebilirsiniz.\u00a0<\/strong><\/a><br \/>\n<a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sd_card_goruntu.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1376 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sd_card_goruntu.jpg\" alt=\"\" width=\"488\" height=\"255\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 488px; --smush-placeholder-aspect-ratio: 488\/255;\" \/><\/a>Yukar\u0131da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi FAT yaz\u0131yor FAT16 de\u011fil.\u00a0 \u0130kiside ayn\u0131 format\u0131 i\u015faret ediyor. Bu \u015fekilde formatlarsan\u0131z, SD k\u00fct\u00fcphaneniz sorun yaratmayacakt\u0131r. Hem de kapasitesini tam hesaplayacakt\u0131r.<br \/>\nAyn\u0131 sdcard&#8217;\u0131 FAT32 ile formatlad\u0131m. Sonu\u00e7lar a\u015fa\u011f\u0131dad\u0131r. Arduino ile ger\u00e7ek sdcard&#8217;\u0131n i\u00e7eri\u011fi seri monit\u00f6rde g\u00f6steriliyor.<br \/>\n<strong><span style=\"color: #ff6600;\">Burada biraz ikili sistem hakk\u0131nda bilgi vermem gerekti\u011fine inan\u0131yorum.<\/span> \u0130kili sistemlerde byte, Kbyte, Mbyte, Gbyte ili\u015fkileri diren\u00e7lerde oldu\u011fu gibi 1000 kat artmaz. \u0130kilik sistemin gere\u011fi 1024Byte=1Kbyte eder, 1024Kbyte=1Mbyte eder. bundan dolay\u0131 program i\u00e7erisinde boyut hesaplamas\u0131nda 1024 \u00e7arpan\u0131 kullan\u0131lm\u0131\u015ft\u0131r.\u00a0<\/strong><\/p>\n<p><span style=\"color: #ff6600;\">FAT16 format : CARD TYPE ve VOLUME TYPE k\u0131s\u0131mlar\u0131na dikkat edin.<\/span><br \/>\n<a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/fat16_wav_sdcard.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1377 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/fat16_wav_sdcard.jpg\" alt=\"\" width=\"376\" height=\"331\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 376px; --smush-placeholder-aspect-ratio: 376\/331;\" \/><\/a><span style=\"color: #ff6600;\">FAT32 Format :\u00a0CARD TYPE ve VOLUME TYPE k\u0131s\u0131mlar\u0131na dikkat edin.<\/span><br \/>\n<a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/fat32_sdcard.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1378 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/fat32_sdcard.jpg\" alt=\"\" width=\"516\" height=\"299\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 516px; --smush-placeholder-aspect-ratio: 516\/299;\" \/><\/a><\/p>\n<p><span style=\"color: #ff6600;\">FAT32 SDHC card :\u00a0CARD TYPE ve VOLUME TYPE k\u0131s\u0131mlar\u0131na dikkat edin.<\/span><\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/fat32_SDHC_card.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1379 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/fat32_SDHC_card.jpg\" alt=\"\" width=\"599\" height=\"227\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 599px; --smush-placeholder-aspect-ratio: 599\/227;\" \/><\/a><\/p>\n<p><span style=\"color: #ff6600;\">Ayr\u0131ca yukar\u0131daki resimde SDHC yi g\u00f6rmesine ra\u011fmen boyutu 8gb g\u00f6rmesi gerekirken 3.4gb gibi hatal\u0131 g\u00f6r\u00fcyor.<br \/>\n<\/span><span style=\"color: #ff6600;\">CARD TYPE k\u0131s\u0131mlar\u0131da kapasiteye g\u00f6re belirleniyor. Proteus \u00fczerinde g\u00f6rd\u00fc\u011f\u00fcn\u00fcz Card type: SD yaz\u0131s\u0131 64mb olan sdcard lara aittir.\u00a0<\/span><\/p>\n<p><strong>Bilgisayar \u00fczerinde sdcard g\u00f6r\u00fcn\u00fcm\u00fc bu \u015fekildedir.<\/strong><br \/>\n<a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sdcard_formati_FAT16.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox alignleft wp-image-1381 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sdcard_formati_FAT16.jpg\" alt=\"\" width=\"365\" height=\"228\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 365px; --smush-placeholder-aspect-ratio: 365\/228;\" \/><\/a><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sdcard_formati_FAT32.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox alignright wp-image-1382 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sdcard_formati_FAT32.jpg\" alt=\"\" width=\"319\" height=\"199\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 319px; --smush-placeholder-aspect-ratio: 319\/199;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sdhc_8gb_fat32.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1383 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sdhc_8gb_fat32.jpg\" alt=\"\" width=\"464\" height=\"290\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 464px; --smush-placeholder-aspect-ratio: 464\/290;\" \/><\/a><\/p>\n<p>Arduino SD k\u00fct\u00fcphanesi t\u00fcm\u00fcn\u00fc g\u00f6r\u00fcyor, fakat SDHC kartlarda kapasite yanl\u0131\u015f hesaplan\u0131yor. <span style=\"color: #ff6600;\">Burada yazma denemesi yapmad\u0131m \u00e7\u00fcnk\u00fc telefonuma ait bir sdhc kart oldu\u011fundan kapasite yanl\u0131\u015fl\u0131\u011f\u0131ndan, yanl\u0131\u015f yere yazma ve format\u0131n bozulmas\u0131na sebep olabilirdi. Sadece okuma denemesi yap\u0131ld\u0131.\u00a0<\/span><\/p>\n<p>Denemelerde MicroSD kart kulland\u0131m bunu arduinoya ba\u011flarken s\u0131k\u0131nt\u0131 \u00e7ekmedim. \u00c7\u00fcnk\u00fc mod\u00fcl\u00fcm microsd uyumluydu. <span style=\"color: #ff6600;\">\u015eayet yanl\u0131\u015fl\u0131kla SD kart b\u00fcy\u00fckl\u00fc\u011f\u00fcnde bir mod\u00fcl ald\u0131ysan\u0131z sorun etmeyin, micro SD kart adapt\u00f6r\u00fcn\u00fc kullanabilirsiniz.\u00a0<\/span><br \/>\n<a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/20190603_221812.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1384 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/20190603_221812.jpg\" alt=\"\" width=\"470\" height=\"352\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 470px; --smush-placeholder-aspect-ratio: 470\/352;\" \/><\/a><br \/>\nBir de adapt\u00f6r kullanacaksan\u0131z adapt\u00f6r\u00fcn kenar\u0131ndaki write protect denilen kilidi, yaz\u0131labilir konuma almal\u0131s\u0131n\u0131z. Yoksa formatlayamazs\u0131n\u0131z veya \u00fczerine bilgi yazamazs\u0131n\u0131z. sadece okuma yapacaksan\u0131z bunu LOCK konumuna getirin. Yanl\u0131\u015fl\u0131kla bilgi yazmay\u0131 \u00f6nler.<br \/>\n<img decoding=\"async\" class=\"aligncenter size-full wp-image-1385 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/SD_card_unlocked_and_locked.png\" alt=\"\" width=\"440\" height=\"310\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 440px; --smush-placeholder-aspect-ratio: 440\/310;\" \/><\/p>\n<p>Micro kartlar\u0131 sat\u0131n almak istedi\u011finizde, a\u015fa\u011f\u0131daki bilgiler akl\u0131n\u0131zda bulunsun. Arduino projenizde m\u00fcmk\u00fcn oldu\u011fu kadar d\u00fc\u015f\u00fck kapasiteli kullanmay\u0131 d\u00fc\u015f\u00fcn\u00fcn. SD k\u00fct\u00fcphanesi sorun \u00e7\u0131karmayacakt\u0131r. Ayr\u0131ca ara\u015ft\u0131rmalar\u0131mda ba\u015fka bir k\u00fct\u00fcphane daha oldu\u011fu yaz\u0131yordu. SDFAT bu k\u00fct\u00fcphanenin daha y\u00fcksek kapasitelilere uyumlu olabilece\u011fini d\u00fc\u015f\u00fcn\u00fcyorum. Fakat denemedim.<a href=\"https:\/\/www.arduinolibraries.info\/libraries\/sd-fat\" target=\"_blank\" rel=\"noopener\"> <strong>\u0130sterseniz buradan indirip deneyebilirsiniz<\/strong>.<\/a>\u00a0\u0130nternette bu k\u00fct\u00fcphane ile de sorunlar ya\u015fand\u0131\u011f\u0131n\u0131 da okuyabilirsiniz.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-1387 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sdcard_spec.jpg\" alt=\"\" width=\"892\" height=\"239\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 892px; --smush-placeholder-aspect-ratio: 892\/239;\" \/><\/p>\n<p><span style=\"color: #ff6600;\">Tabii ki bir de sahte sdcard lar\u0131n piyasada dola\u015ft\u0131\u011f\u0131n\u0131 unutmay\u0131n.<\/span> <a href=\"https:\/\/www.bunniestudios.com\/blog\/?page_id=1022\" target=\"_blank\" rel=\"noopener\"><strong>Bu yaz\u0131daki bilgilere g\u00f6z atman\u0131zda fayda var.<\/strong><\/a><\/p>\n<p><span style=\"color: #ff6600;\">Buraya kadar sdcard haz\u0131rlama k\u0131sm\u0131n\u0131 anlatmaya \u00e7al\u0131\u015ft\u0131m. \u00c7\u00fcnk\u00fc burada yap\u0131lacak bir hata ileride size \u00e7ok zaman kaybettirecektir. Formatlad\u0131\u011f\u0131n\u0131z kart\u0131 \u00f6nce deneme programlar\u0131yla denemenizi \u00f6neririm.<\/span><\/p>\n<p><span style=\"color: #ff0000;\"><strong>NOT : Dosya ve dizin isimlerini kullan\u0131rken baz\u0131 kurallara uyman\u0131z gerekir.<\/strong><\/span><br \/>\n<strong>a-)<\/strong> Dosya isimlerinde 8+3 kural\u0131 vard\u0131r. 8 karakter isim 3 karakter uzant\u0131d\u0131r. (name1234.ext) gibi.<br \/>\n<strong>b-)<\/strong> Dosya isimlerinde ASCII 127 den sonraki karakterler kullan\u0131lamaz. Fakat \u015fu karakterlere yer verebilirsiniz.<strong>\u00a0$ % &#8216; &#8211; _ @ ~ ` ! ( ) { } ^ # &amp;<\/strong>\u00a0 \u00a0 \u00a0 <span style=\"color: #ff6600;\">Yine de sizler \u00e7ok gerekmedik\u00e7e bu tip karakterleri kullanmay\u0131n.<\/span><br \/>\n<strong>c-)<\/strong> \u0130sim karakterleri aras\u0131nda bo\u015fluk kullan\u0131lamaz. Bunun yerine ( _ ) alt tire i\u015fareti kullanabilirsiniz.<br \/>\n<strong>d-)<\/strong> SDCARD i\u00e7erisinde uzun dosya isimleri olabilir. Bu dosya isimlerini listeledi\u011finizde 8+3 karakter \u015feklinde g\u00f6receksiniz. Mesela denemeler.txt yazd\u0131\u011f\u0131n\u0131zda deneme~1.txt gibi g\u00f6receksiniz.<br \/>\n<strong>Dosyay\u0131 a\u00e7mak istedi\u011finizde denemeler.txt derseniz a\u00e7maz.\u00a0deneme~1.txt \u015feklinde belirtmeniz gerekir.<\/strong><\/p>\n<p><a href=\"https:\/\/drive.google.com\/open?id=1K7a2ADuTZjB_10j83genpV2gjkCT0e0C\" target=\"_blank\" rel=\"noopener\"><strong>T\u00fcm programlar\u0131ma bu linkten ula\u015fabilirsiniz.<\/strong><\/a><\/p>\n<p><span style=\"color: #ff0000;\"><strong> Fakat \u015funu s\u00f6ylemem gerekir.<\/strong><\/span> Programlar ayn\u0131 olsa bile proteus ile ger\u00e7ek devre aras\u0131nda 1 fark vard\u0131r. Bu da CS (chip select) dedi\u011fimiz ya da SS(slave select) dedi\u011fimiz sdcard piminin, arduino \u00fczerinde ba\u011flant\u0131l\u0131 oldu\u011fu pim numaras\u0131d\u0131r.<br \/>\nGer\u00e7ek devrede bu sat\u0131r 4 numaral\u0131 pim&#8217;e ba\u011flanacak. (\u00a0const int chipSelect = 4;)<br \/>\nProteus devrelerinde ise 4 nolu pim do\u011fru \u00e7al\u0131\u015fmad\u0131\u011f\u0131ndan UNO ya da NANO \u00fczerindeki SS i\u015faretli 10 numaral\u0131 pim kullan\u0131lmaktad\u0131r. (const int chipSelect = 10;) Bunun sebebi belki de spi i\u00e7in ayr\u0131lm\u0131\u015f olan bir pim olmas\u0131ndan kaynaklan\u0131yordur. Ger\u00e7ek devrede ise bu pimi 4 nolu pim olarak de\u011fi\u015ftirebiliyoruz. Bundan dolay\u0131 ayn\u0131 programlar\u0131, hem proteus dizininde hem de normal \u00e7al\u0131\u015fma dizininde g\u00f6receksiniz. <strong><span style=\"color: #ff0000;\">Buna dikkat ediniz.<\/span><\/strong><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Program listeleri :<\/strong><\/span><br \/>\n<img decoding=\"async\" class=\"aligncenter size-full wp-image-1389 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/programlar.jpg\" alt=\"\" width=\"214\" height=\"174\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 214px; --smush-placeholder-aspect-ratio: 214\/174;\" \/><span style=\"color: #ff6600;\"><strong>Yukar\u0131daki programlar\u0131n a\u00e7\u0131klamalar\u0131:<\/strong><\/span><br \/>\n<strong>Ardu_ses:<\/strong>\u00a0 SDcard \u00fczerinden wav dosyalar\u0131n\u0131 devaml\u0131 okur. Basit yap\u0131s\u0131 vard\u0131r \u00f6rnek olsun diye konuldu.<br \/>\n<strong>Arduino_sdcard_serino:<\/strong> Bu program sdcard i\u00e7eri\u011fini okur, ayr\u0131ca belirtece\u011finiz isimdeki dosyan\u0131n i\u00e7eri\u011fini okur.<br \/>\n<strong>Datalog :<\/strong> Bu program sdcard \u00fczerinde bir dosyaya bilgi yazman\u0131z\u0131 sa\u011flar. \u015eayet dosya ismi yeni ise \u00f6nce dosyay\u0131 olu\u015fturur sonras\u0131nda ise bilgileri i\u00e7ine yazar.<br \/>\n<strong>Filenames :<\/strong> SDCARD i\u00e7erisindeki dosya ve dizinleri listeler. Fakat k\u00fct\u00fcphane taraf\u0131ndan de\u011fil sizin taraf\u0131n\u0131zdan yazd\u0131rman\u0131z\u0131 sa\u011flar, Di\u011fer program listelerken gelen verileri de\u011fi\u015fkene aktaramazs\u0131n\u0131z, bunu k\u00fct\u00fcphane kendisi yapar. Bundan dolay\u0131 dosya ve dizin isimlerini de\u011fi\u015fkene aktar\u0131p kullanamazd\u0131n\u0131z. Bu programla dosya ve dizin isimlerini de\u011fi\u015fkene aktar\u0131p kullanabilirsiniz.<br \/>\n<strong>Otopark1 :<\/strong> Arduino+sdcard+wavdosyalar\u0131+servo motor+ibutton+IR sens\u00f6r ile yap\u0131lm\u0131\u015f \u00f6rnek projenin dosyas\u0131d\u0131r. Servo motor k\u00fct\u00fcphanesiz kullan\u0131lm\u0131\u015ft\u0131r.<br \/>\n<strong><a href=\"https:\/\/www.mikrobotik.com\/wp2\/2019\/03\/06\/kutuphanesiz-servo-motor-kullan\/\" target=\"_blank\" rel=\"noopener\">servo motor ayr\u0131nt\u0131l\u0131 bilgi<\/a>,<\/strong>\u00a0 \u00a0 \u00a0<a href=\"https:\/\/www.mikrobotik.com\/wp2\/2019\/03\/12\/ibutton_onewire\/\" target=\"_blank\" rel=\"noopener\"><strong>\u0130button ayr\u0131nt\u0131l\u0131 bilgi\u00a0<\/strong><\/a><br \/>\n<strong>Proteus :<\/strong> Bu dizinde ise yine ayn\u0131 programlar proteus \u00fczerinde \u00e7al\u0131\u015facak \u015fekilde haz\u0131rlanm\u0131\u015ft\u0131r. Tek fark CS ucunun ba\u011fl\u0131 oldu\u011fu pimdir.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Not:<\/strong> <\/span>SDCARD i\u00e7inde dosya a\u00e7t\u0131ysan\u0131z mutlaka i\u015fi bitince kapat\u0131n. yoksa a\u00e7\u0131k olan dosya y\u00fcz\u00fcnden, sdcard bozuk g\u00f6r\u00fcnebilir, okuma hatas\u0131 yapabilir, yeniden format atma gere\u011fi duyabilirsiniz.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>SDCARD Mod\u00fcl\u00fc :<\/strong><\/span><br \/>\n<img decoding=\"async\" class=\"aligncenter size-full wp-image-1392 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/sdcard_module.jpg\" alt=\"\" width=\"1127\" height=\"564\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1127px; --smush-placeholder-aspect-ratio: 1127\/564;\" \/>Yukar\u0131daki mod\u00fcl benim kulland\u0131\u011f\u0131m mod\u00fcld\u00fcr.<span style=\"color: #ff6600;\"> \u015eayet farkl\u0131 mod\u00fcl kullan\u0131yorsan\u0131z Seviye d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc kullanman\u0131z gerekir.<\/span> \u00c7\u00fcnk\u00fc SD card lar 3.3V ile \u00e7al\u0131\u015f\u0131r. Arduino gibi devreler 5V ile \u00e7al\u0131\u015ft\u0131klar\u0131ndan arada seviye d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc kullan\u0131lmal\u0131.<br \/>\nPeki devrede neden 3.3V seviye d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc kullanmad\u0131m. LVC125A entegresi seviye \u00e7evirici entegredir. \u015eu \u015fekilde \u00e7al\u0131\u015fmaktad\u0131r. T\u00fcm \u00e7\u0131k\u0131\u015flar entegrenin Vcc gerilimine g\u00f6re \u00e7\u0131k\u0131\u015f verir. Giri\u015f voltaj\u0131 5V bile olsa bu entegreyi, 3.3V ile besliyorsak, \u00e7\u0131k\u0131\u015flar daima 3.3V olacakt\u0131r. Buradaki AMS1117 3.3V entegresi t\u00fcm sistem i\u00e7in 3.3V sa\u011flar. <strong><span style=\"color: #ff0000;\">Bu konu \u00e7ok \u00f6nemlidir. direkt ba\u011flad\u0131\u011f\u0131n\u0131zda 5V ile besleyip sdcard&#8217;a zarar verirsiniz.\u00a0<\/span><\/strong><\/p>\n<p><span style=\"color: #ff6600;\">\u00d6ncelikle Arduses program\u0131m\u0131za g\u00f6z atal\u0131m.<\/span> <a href=\"https:\/\/www.instructables.com\/id\/Audio-Player-Using-Arduino-With-Micro-SD-Card\/\" target=\"_blank\" rel=\"noopener\"><strong>Bu program\u0131 ald\u0131\u011f\u0131m yer bu linktedir.\u00a0<\/strong><\/a><br \/>\n<span style=\"color: #ff6600;\">SES dosyalar\u0131n\u0131 d\u00f6n\u00fc\u015ft\u00fcrme i\u00e7in<\/span> <a href=\"https:\/\/audio.online-convert.com\/convert-to-wav\" target=\"_blank\" rel=\"noopener\"><strong>bu sayfaya gidip<\/strong><\/a>, wav dosyan\u0131z\u0131 y\u00fckleyip, a\u015fa\u011f\u0131daki parametreleri ayarlay\u0131p, start butonuna basman\u0131z yeterli olacakt\u0131r.<br \/>\nWAV dosyas\u0131, kay\u0131t i\u00e7in program\u0131n\u0131z yoksa <a href=\"https:\/\/twistedwave.com\/online\" target=\"_blank\" rel=\"noopener\"><strong>online olarak bu siteden<\/strong><\/a> faydalanabilirsiniz.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-1401 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/wav-hazirla.jpg\" alt=\"\" width=\"859\" height=\"675\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 859px; --smush-placeholder-aspect-ratio: 859\/675;\" \/><\/p>\n<pre class=\"height-set:true height:300 lang:arduino decode:true\" title=\"Arduses program\u0131\">       \r\n    #include &lt;SD.h&gt;                      \/\/ need to include the SD library\r\n    #define SD_ChipSelectPin 4  \/\/using digital pin 4 on arduino nano 328\r\n    #include &lt;TMRpcm.h&gt;           \/\/  also need to include this library...\r\n    #include &lt;SPI.h&gt;\r\n    \r\n    TMRpcm tmrpcm;   \/\/ create an object for use in this sketch\r\n     \r\n    void setup(){\r\n    \r\n     \r\n      tmrpcm.speakerPin = 9; \/\/11 on Mega, 9 on Uno, Nano, etc\r\n     \r\n      if (!SD.begin(SD_ChipSelectPin)) {  \/\/ see if the card is present and can be initialized:\r\n      return;   \/\/ don't do anything more if not\r\n      }\r\n     tmrpcm.volume(1);\/\/ sadece 0 ve 1 yaz\u0131ld\u0131g\u0131nda farkl\u0131. normalde 0-7 aras\u0131nda farkl\u0131 olmal\u0131 belki de amfiden dolay\u0131 hissedilmiyor. \r\n     \r\n    }\r\n     \r\n    void loop(){  \r\n    \r\n         \r\n          tmrpcm.play(\"den\/ses_call.wav\");\r\n          delay(11000); \/\/ oynatma s\u00fcresi. \r\n          tmrpcm.play(\"7.wav\");\r\n         delay(11000);\r\n          tmrpcm.play(\"5.wav\");\r\n         delay(2000);\r\n          tmrpcm.play(\"3.wav\");\r\n          delay(2000);\r\n          tmrpcm.play(\"1.wav\");\r\n          delay(2000);\r\n         tmrpcm.play(\"2.wav\");\r\n          delay(2000);\r\n         tmrpcm.play(\"6.wav\");\r\n          delay(2000);          \r\n        }\r\n<\/pre>\n<p>Yukar\u0131daki programda SD card eri\u015fim i\u00e7in sd.h k\u00fct\u00fcphanesi kullan\u0131l\u0131yor. Ses i\u00e7in ise\u00a0TMRpcm.h k\u00fct\u00fcphanesi kullan\u0131l\u0131yor. <a href=\"https:\/\/github.com\/TMRh20\/TMRpcm\/wiki\/Advanced-Features\" target=\"_blank\" rel=\"noopener\"><strong>TMRpcm k\u00fct\u00fcphanesinin Github sitesi buradad\u0131r.\u00a0<\/strong><\/a><br \/>\n<span style=\"color: #ff6600;\">Arduinonun SD k\u00fct\u00fcphanesi do\u011fru \u00e7al\u0131\u015f\u0131yor. Fakat sizin k\u00fct\u00fcphaneniz bir \u015fekilde de\u011fi\u015fmi\u015fse programlar \u00e7al\u0131\u015fmaz olduysa t\u00fcm dosyalar\u0131n bulundu\u011fu yerde SD k\u00fct\u00fcphane dosyalar\u0131 olacak oradan k\u00fct\u00fcphaneyi kendi bilgisayar\u0131n\u0131za indirip deneyin.\u00a0<\/span><br \/>\n<span style=\"color: #ff6600;\">Ayr\u0131ca\u00a0TMRpcm.h k\u00fct\u00fcphanesi de dosyalar\u0131n aras\u0131nda bulunacak. Oradan al\u0131p kendi k\u00fct\u00fcphanenize ekleyebilirsiniz.\u00a0<\/span><br \/>\n11. sat\u0131rda bulunan speaker piminin uno ve megaya g\u00f6re de\u011fi\u015fti\u011fini unutmay\u0131n. Bunun yan\u0131 s\u0131ra ses dosyalar\u0131 loop k\u0131sm\u0131nda oldu\u011fundan devaml\u0131 \u00e7al\u0131yor gibi g\u00f6r\u00fcnse de maalesef ba\u015fka alt programa da koysan\u0131z devaml\u0131 \u00e7almaya devam edecektir. Bu da k\u00fct\u00fcphaneden kaynakl\u0131 bir durum. loop parametresi devaml\u0131 \u00e7almaya ayarl\u0131 oldu\u011fundan bir kere ba\u015flad\u0131 m\u0131 devaml\u0131 \u00e7al\u0131yor. Bunu durdurmak i\u00e7in ne yapmam\u0131z laz\u0131m. O da otopark program\u0131nda oldu\u011fu gibi ses dosyas\u0131n\u0131 \u00e7alma i\u015flevi bitti\u011finde durdurmak i\u00e7in <span style=\"color: #ff0000;\"><strong>disable ve stopplayback<\/strong><\/span> komutlar\u0131 kullan\u0131l\u0131r.<\/p>\n<p>Bunun yan\u0131 s\u0131ra \u015fu iki sat\u0131r birlikte \u00e7alma i\u015flevini yerine getirir.\u00a0tmrpcm.play(&#8220;den\/ses_call.wav&#8221;); ve delay s\u00fcresi. Ses dosyas\u0131n\u0131n ne kadar s\u00fcre \u00e7alaca\u011f\u0131 delay komutuyla belirtilir. Bu s\u00fcreyi nereden bulabiliriz derseniz, a\u015fa\u011f\u0131daki gibi dosya \u00f6zelliklerinden ula\u015fablirsiniz. Burada yakla\u015f\u0131k 50sn \u00e7almas\u0131 gerekti\u011fi ortaya \u00e7\u0131k\u0131yor.<br \/>\n<img decoding=\"async\" class=\"aligncenter size-full wp-image-1393 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/muzik_ayrinti.jpg\" alt=\"\" width=\"932\" height=\"542\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 932px; --smush-placeholder-aspect-ratio: 932\/542;\" \/><strong>Ayr\u0131ca dosya isimleri<\/strong> konusunda da baz\u0131 sorular geliyordu. Mesela baz\u0131 sorularda dosya ismi yerine numara m\u0131 koymal\u0131y\u0131z. Ya da sadece ana dizindeki dosyalara m\u0131 ula\u015fabiliriz.<br \/>\nA\u015fa\u011f\u0131daki sat\u0131rlardaki m\u00fczik dosyalar\u0131, ayn\u0131 dosyad\u0131r. Birinde 7.wav olarak numaraland\u0131r\u0131lm\u0131\u015f di\u011ferinde ise Hem alt dizin i\u00e7erisinde hem de numara de\u011fil ger\u00e7ek ismi yaz\u0131lm\u0131\u015f. Her iki dosya da \u00e7al\u0131\u015fmaktad\u0131r. <span style=\"color: #ff6600;\"><strong>Bu konuda bir k\u0131s\u0131t\u0131n\u0131z yok. Fakat dosya ismi i\u00e7in 8+3 sistemine uymak zorundas\u0131n\u0131z.<\/strong><\/span>\u00a0Ayr\u0131ca bir de DOS sistemine al\u0131\u015f\u0131k olanlar dizin i\u015faretini <span style=\"color: #ff0000;\"><strong>( \\ )<\/strong><\/span> bu \u015fekilde yaparlard\u0131. Burada bu al\u0131\u015fkanl\u0131klar\u0131 de\u011fi\u015fecek. \u00c7\u00fcnk\u00fc art\u0131k <strong>dizin i\u015fareti olarak<\/strong> <strong><span style=\"color: #ff0000;\">( \/ )\u00a0<\/span>bu i\u015faret kullan\u0131lacak.\u00a0<\/strong><br \/>\n__________________________________<br \/>\ntmrpcm.play(&#8220;den\/ses_call.wav&#8221;);<br \/>\ndelay(11000); \/\/ oynatma s\u00fcresi.<br \/>\ntmrpcm.play(&#8220;7.wav&#8221;);<br \/>\ndelay(11000);<br \/>\n____________________________________<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-1394 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/otopark_devre.jpg\" alt=\"\" width=\"1234\" height=\"855\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1234px; --smush-placeholder-aspect-ratio: 1234\/855;\" \/><\/p>\n<p>\u0130buttonlar\u0131n romkodlar\u0131 farkl\u0131 oldu\u011fundan proteusta, anahtarla ayr\u0131ld\u0131. Bu anahtarlar ger\u00e7ek devrede olmayacak. Devreyi bu \u015fekilde kurdu\u011funuzda t\u00fcm sdcard programlar\u0131n\u0131 da kullanabileceksiniz.<br \/>\n<span style=\"color: #ff0000;\"><strong>Not:<\/strong><\/span> Proteus da\u00a0<strong>CS<\/strong> ucunun ba\u011fl\u0131 oldu\u011fu <strong>D10<\/strong> pimidir. <strong>Ger\u00e7ek devrede ise D4 pimine<\/strong> ba\u011fl\u0131 olacakt\u0131r. Programlar proteus ve ger\u00e7ek devre diye bu y\u00fczden ayr\u0131ld\u0131.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"height-set:true lang:arduino decode:true\" title=\"Arduino otopark kap\u0131 program\u0131\"> #include &lt;SD.h&gt;                      \/\/ need to include the SD library\r\n    #define SD_ChipSelectPin 4  \/\/using digital pin 4 on arduino nano 328\r\n    #include &lt;TMRpcm.h&gt;           \/\/  also need to include this library...\r\n    #include &lt;SPI.h&gt;\r\n    #include &lt;OneWire.h&gt;\r\n    #define motor1_pin         8 \r\n    #define sensor_pin         3 \r\n    TMRpcm tmrpcm;   \/\/ create an object for use in this sketch\r\n     OneWire  ds(2);\r\n    byte i;\r\n    byte present = 0;\r\n  byte addr2[8];\r\n  float temp1;\r\n  String adress=\"\";\r\n  int ses=0;\r\n\r\n\r\n\r\n  void hatakayit(){\r\n    \r\n\/\/Serial.print(\"Initializing SD card...\");\r\n\r\n  \/\/ see if the card is present and can be initialized:\r\n  if (!SD.begin(SD_ChipSelectPin)) {\r\n    \/\/Serial.println(\"Card failed, or not present\");\r\n    Serial.print(\"LCDWR 2,1-*SD CARD HATASI*\");\r\n    \/\/ don't do anything more:\r\n    return;\r\n  }\r\n  \/\/Serial.println(\"card initialized.\");\r\n\r\n \/\/Serial.println(\"YAZMA BASLADI\");\r\n  \/\/ make a string for assembling the data to log:\r\n  \/\/String dataString = \"\";\r\n  delay(1000);\r\n  \/\/ dosya adlar\u0131 mutlaka 8+3 \u015feklinde verilmeli. dosya ismi= 8 karakter  uzant\u0131s\u0131 =3 karakter. **********\r\n  \/\/ dosya yoksa yenisini olu\u015fturur ve i\u00e7ine yazar. dosya varsa, dosyan\u0131n son kay\u0131t\u0131ndan sonra kay\u0131t etmeye ba\u015flar. \r\n  \r\n   File dataFile = SD.open(\"hata.log\", FILE_WRITE);\/\/ yazmak i\u00e7in FILE_WRITE kullan\u0131l\u0131r. \r\n   \/\/**************************************************Kullanmad\u0131\u011f\u0131n\u0131zda ya da FILE_READ kulland\u0131\u011f\u0131n\u0131zda okuma durumundad\u0131r\r\n\r\n  if (dataFile) {\r\n    dataFile.print(adress);dataFile.println(\",01.06.2019,11:30:00\");\r\n    delay(1000);\r\n    Serial.print(\"LCDWR 1,1-\");Serial.print(adress);Serial.print(\"     \");  \r\n    delay(300);\r\n    Serial.print(\"LCDWR 2,1-HATA YAZILDI\");\r\n    delay(2000);\r\n    Serial.print(\"LCDDD\");\r\n  delay(100);\r\n  Serial.print(\"LCDWR 1,1-PLEASE TOUCH KEY\");\r\n  }\r\n else {\r\n    Serial.print(\"LCDWR 2,1-FILE OPEN ERROR \");\r\n  }\r\n   dataFile.close();\r\n \r\n   \r\n  }\r\n\r\n  \r\n  void degispos(){\r\n  for (int i = 0; i &lt;=5; i++) {\r\n   digitalWrite (motor1_pin,HIGH);\r\n delayMicroseconds(temp1);\r\n digitalWrite (motor1_pin,LOW);\r\n delay(25); \r\n  }\r\n  \r\n}\r\n\r\nvoid kapat(){\r\n  delay(5000);\r\n  while (digitalRead(sensor_pin)==0){\r\n    \/\/Serial.println(\" Bariyer kapanam\u0131yor, engel tespit edildi\");\r\n    Serial.print(\"LCDWR 1,1-Bariyer sorunu  \");\r\n    delay(300);\r\n    Serial.print(\"LCDWR 2,1-Engeli Kaldirin \");\r\n    \r\n    ses=4;\r\n    sescal();\r\n    delay(2000);\r\n    \r\n  }\r\n  ses=3;\r\n    sescal();\r\n    temp1=1480;\r\n     degispos();\r\n  Serial.print(\"LCDDD\");\r\n  delay(100);\r\n  Serial.print(\"LCDWR 1,1-PLEASE TOUCH KEY\");\r\n \r\n}\r\n\r\nvoid rombul(){\r\n \r\n ds.reset();\r\npresent = ds.reset();\r\n present = ds.reset();\r\n   ds.write(0x33);         \/\/ Read Scratchpad\r\n  for ( i = 0; i &lt; 8; i++) {           \/\/ we need 9 bytes\r\n    addr2[i] = ds.read();\r\n    adress=adress+String(addr2[i],HEX);\r\n    \/\/Serial.print(addr2[i], HEX);\r\n    \r\n  } \r\n  \/\/Serial.println(\"\");\r\n  \/\/Serial.println(adress);\r\n  if (adress==\"ffffffffffffffff\"){\r\n  \r\n    \r\n    goto atla;\r\n  }\r\n  if (adress==\"00000000\"){\r\n    goto atla;\r\n  }\r\n  if (adress==\"12217e810036\"){ \/\/ kay\u0131tl\u0131 ibutton rom code. \r\n    delay(100);\r\n    Serial.print(\"LCDWR 1,1-\");Serial.print(adress);Serial.print(\"     \");\r\n    delay(100);\r\n    Serial.print(\"LCDWR 2,1-     UYUMLU     \");\r\n    delay(100);\r\n    ses=1;\r\n    sescal();\r\n    temp1=544;\r\n     degispos();\r\n     kapat();\r\n     \/\/delay(3000); \/\/ *********************************   buraya sensor kontrol koy\r\n  }\r\n  else{\r\n    \/\/Serial.println(\"uyumsuz\");\r\n    delay(100);\r\n    Serial.print(\"LCDWR 1,1-\");Serial.print(adress);Serial.print(\"     \");\r\n    delay(100);\r\n    Serial.print(\"LCDWR 2,1-    UYUMSUZ    \");\r\n    delay(100);\r\n     ses=2;\r\n    sescal();\r\n    hatakayit();\/\/ kay\u0131tl\u0131 olmayan ibutton ile deneniyorsa hata verdi\u011finde sd karta kay\u0131t yapar. \r\n  }\r\n  atla:;\r\n  adress=\"\";\r\n}\r\n\r\n     \r\n    void setup(){\r\n      Serial.begin(9600);\r\n pinMode(motor1_pin, OUTPUT);\/\/ servo motor\r\n     pinMode(sensor_pin, INPUT);\r\n      Serial.print(\"LCDDD\");\r\n  delay(100);\r\n  Serial.print(\"LCDWR 1,1-PLEASE TOUCH KEY\");\r\n      tmrpcm.speakerPin = 9; \/\/11 on Mega, 9 on Uno, Nano, etc\r\n     \r\n    \/\/  if (!SD.begin(SD_ChipSelectPin)) {  \/\/ see if the card is present and can be initialized:\r\n    \/\/  return;   \/\/ don't do anything more if not\r\n    \/\/  }\r\n     tmrpcm.volume(1);\r\n     tmrpcm.loop(0);\r\n    }\r\n    \r\n     void sescal(){\r\n\r\n       if (!SD.begin(SD_ChipSelectPin)) {  \/\/ see if the card is present and can be initialized:\r\n      return;   \/\/ don't do anything more if not\r\n      }\r\n          \r\n      if (ses==1){  tmrpcm.play(\"ac.wav\");\/\/ ac.wav\r\n          delay(2000); \/\/ oynatma s\u00fcresi. \r\n      }\r\n      if (ses==2){  tmrpcm.play(\"tekrar.wav\");\/\/ tekrar.wav\r\n          delay(2000); \/\/ oynatma s\u00fcresi. \r\n      }\r\n      if (ses==3){  tmrpcm.play(\"kapat.wav\");\/\/kapat.wav \r\n          delay(2000); \/\/ oynatma s\u00fcresi. \r\n      }\r\n      if (ses==4){  tmrpcm.play(\"engel.wav\");\/\/engelsensor.wav \r\n          delay(2000); \/\/ oynatma s\u00fcresi. \r\n      }\r\n      \r\n    tmrpcm.disable();\r\n    \r\n   tmrpcm.stopPlayback();\r\n   \r\n   }\r\n\r\n   \r\n    void loop(){  \r\n    \r\n       rombul() ; \r\n       delay(3000);          \r\n        }<\/pre>\n<p style=\"text-align: left;\"><strong>Yukar\u0131daki programda alt programlar\u0131 a\u00e7\u0131klayal\u0131m. (<span style=\"color: #ff0000;\">LCD<\/span> i\u00e7in <a href=\"https:\/\/www.mikrobotik.com\/wp2\/2018\/06\/27\/easylcd-hd44780-uyumlu-karakter-lcd-seri-modul\/\" target=\"_blank\" rel=\"noopener\">EASYLCD<\/a> kullan\u0131lm\u0131\u015ft\u0131r.)<\/strong><br \/>\n<strong>void hatakayit() :<\/strong> Buras\u0131 hatal\u0131 bir ibutton okundu\u011funda buldu\u011fu kodu sdcard \u00fczerindeki hata.log dosyas\u0131na yazar. (Tarih ve Zaman Damgas\u0131yla birlikte). Yetkisiz ki\u015filerin ibuttonlar\u0131 kulland\u0131\u011f\u0131n\u0131 g\u00f6r\u00fcp \u00f6nlem al\u0131nabilir diye.<br \/>\n<strong>void degispos() :<\/strong> Bu k\u0131s\u0131m k\u00fct\u00fcphanesiz servo motor kullan\u0131m\u0131 i\u00e7indir. Kap\u0131y\u0131 a\u00e7ar ve kapat\u0131r. Burada ne kadar hareket edece\u011fi TEMP1 de\u011fi\u015fkeni ile belirtilir.<br \/>\n<strong>void kapat() :<\/strong> Bu k\u0131s\u0131m ise kapatma i\u015flemi geldi\u011finde IR engel sens\u00f6r\u00fcn\u00fc kontrol eder. \u015eayet engel sens\u00f6r\u00fcn\u00fcn \u00f6n\u00fcnde engel varsa, kap\u0131y\u0131 kapatmaz. Ses ile kullan\u0131c\u0131y\u0131 uyar\u0131r. EASYLCD ile de uyar\u0131 mesaj\u0131 g\u00f6sterir. Engel kalk\u0131nca kapatma i\u015flemine devam eder.<br \/>\n<strong>void rombul() :<\/strong> Bu b\u00f6l\u00fcm ise \u0130buttonlar\u0131 okuma i\u015flemini yapar. okudu\u011fu rom code ge\u00e7erli ise kap\u0131y\u0131 a\u00e7maya gider. Hatal\u0131 ise kap\u0131y\u0131 a\u00e7maz ve hatakay\u0131ta giderek sdcard \u00fczerine hatal\u0131 rom kodu yazar.<br \/>\nB\u00fct\u00fcn bu i\u015flemler olurken her b\u00f6l\u00fcmde bulunan ses de\u011fi\u015fkenine g\u00f6re ses devresi \u00e7al\u0131\u015f\u0131r .Uygun yerlerde EASYLCD ile kullan\u0131c\u0131 bilgilendirilir.<br \/>\n<strong>Burada ayr\u0131ca \u015funu da s\u00f6ylemekte fayda var. Servo motor i\u00e7in K\u00fct\u00fcphane kullan\u0131lmad\u0131, \u0130button i\u00e7in k\u00fct\u00fcphane kullan\u0131lmad\u0131, fakat ibutton haberle\u015fmesi, one wire denilen haberle\u015fme \u015fekli oldu\u011fundan, onewire.h k\u00fct\u00fcphanesi kullan\u0131ld\u0131.\u00a0\u00a0<\/strong><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Proteus i\u00e7in SD CARD haz\u0131rlanmas\u0131 ve i\u00e7inin g\u00f6r\u00fcnt\u00fclenmesi.\u00a0<\/strong><\/span><br \/>\nProteus, ger\u00e7ek sdcard \u00fczerinden bilgi okuyamaz. Proteus i\u00e7in, sdcard image dosyas\u0131 yarat\u0131lmas\u0131 gerekiyor. Bunu haz\u0131rlamak winimage program\u0131yla \u00e7ok kolayd\u0131r. A\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fc size tan\u0131d\u0131k gelecektir. Bu \u015fekilde dizinleri ve dosyalar\u0131 burada olu\u015fturursunuz ve xxxxxxxx.ima olarak dosyay\u0131 kay\u0131t edip, dosyay\u0131 proteus ta kullanabilirsiniz.<br \/>\nTabii ki bunun boyutu ne olmal\u0131. Proteus 7.10 versiyonu i\u00e7in maksimum 128mb olabilir daha b\u00fcy\u00fc\u011f\u00fc olamaz. Tabii ki FAT16 format\u0131nda olmal\u0131.<br \/>\nWinimage program\u0131n\u0131n men\u00fclerini kar\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda orada new ile yeni bir image dosyas\u0131 haz\u0131rlayabilirsiniz. Fakat format i\u00e7in baz\u0131 bilgiler girmeniz gerekir. Bunun yerine benim verdi\u011fim *.ima dosyalar\u0131ndan birini a\u00e7\u0131p i\u00e7ini bo\u015falt\u0131p sonra da s\u00fcr\u00fckle b\u0131rak ile kendi dosyalar\u0131n\u0131z\u0131 buraya yerle\u015ftirmeniz daha kolay olacakt\u0131r.<br \/>\n<strong>Winimage<\/strong> ve dosyalar\u0131n i\u00e7eri\u011fini g\u00f6steren <strong>WINHEX<\/strong> programlar\u0131 t\u00fcm programlarla birlikte <strong>eri\u015febilece\u011finiz yerde bulunacakt\u0131r.<\/strong> <span style=\"color: #ff6600;\">A\u015fa\u011f\u0131daki resimde S\u0130ZE b\u00f6l\u00fcm\u00fc 128MB ta kadar ayarlanabilmektedir. Benim \u0130MA dosyalar\u0131m 64MB. d\u0131r.<\/span><\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/ima_dosyasi.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1396 size-full lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/ima_dosyasi.jpg\" alt=\"\" width=\"790\" height=\"500\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 790px; --smush-placeholder-aspect-ratio: 790\/500;\" \/><\/a><\/p>\n<p><strong>WINHEX program\u0131<\/strong> ise dosyalar\u0131n\u0131z\u0131n i\u00e7eri\u011fini size g\u00f6sterecektir. A\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde HEX olarak i\u00e7eri\u011fini ve ASCII olarak i\u00e7eri\u011fini g\u00f6r\u00fcyorsunuz.<\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/winhex.jpg\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1397 size-full lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/winhex.jpg\" alt=\"\" width=\"1920\" height=\"722\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1920px; --smush-placeholder-aspect-ratio: 1920\/722;\" \/><\/a><\/p>\n<p>Bu bir<strong> mp3<\/strong> dosyas\u0131n\u0131n i\u00e7eri\u011fidir.\u00a0Bu programla mp3 dosyalar\u0131n\u0131z\u0131 incelerseniz, i\u00e7erisindeki sanatci ve di\u011fer bilgilerin oldu\u011fu yerleri g\u00f6rebilirsiniz. Bunlara ID3 tag denir. (Videoda Bir yerde yanl\u0131\u015f bir ifade kullan\u0131ld\u0131, ID3 ve ID4 denildi yanl\u0131\u015f oldu.) ID3 V1.0 ile ba\u015flar.\u00a0 &#8230;\u00a0 ID3 V2.4.0 e kadar gider. Bunlar hakk\u0131nda bilgileri internette bulabilirsiniz.<br \/>\n<span style=\"color: #ff6600;\"><strong>Baz\u0131 linkler burada mevcut.<\/strong><\/span> <strong><a href=\"https:\/\/www.maniactools.com\/soft\/mp3tag-pro\/mp3-tags-versions-of-id3.htm\" target=\"_blank\" rel=\"noopener\">Link1<\/a><\/strong>, <a href=\"https:\/\/metehantoksoy.com\/2014\/01\/02\/id3-tag-nedir\/\" target=\"_blank\" rel=\"noopener\"><strong>Link2(T\u00fcrk\u00e7e)<\/strong><\/a><\/p>\n<p><span style=\"color: #ff6600;\"><strong>\u015eayet MP3 dosyalar\u0131n\u0131zdan bu bilgileri al\u0131p LCD ye yazd\u0131rmaya karar verirseniz,<\/strong><\/span> bunu yapabilirsiniz. Hatta bu konuda<a href=\"http:\/\/arduino-cool.blogspot.com\/2012\/10\/arduino-mp3-player-ii.html\" target=\"_blank\" rel=\"noopener\"><strong> Arduino \u00f6rnekleri<\/strong><\/a> ve PC \u00fczerinde yap\u0131lan \u00f6rnekleri bulabilirsiniz. En basit haliyle ID3 tag V1.0 dosyan\u0131n sonunda yer al\u0131r. Fakat dosyan\u0131n sonuna gidip bunu bulmak uzun zaman alacakt\u0131r. Bunun yerine dosyan\u0131n en ba\u015f\u0131nda bulunan ID3 v2.x bilgilerine, ID3 yazan yerden ba\u015flayan k\u0131sm\u0131 okuyarak daha h\u0131zl\u0131 ula\u015fabilirsiniz.<\/p>\n<p><strong>Proteus \u00fczerinde Arduino Programlar\u0131n\u0131 denemek :\u00a0<\/strong><br \/>\nProteus \u00fczerinde arduino program\u0131n\u0131 nas\u0131l \u00e7al\u0131\u015ft\u0131raca\u011f\u0131z derseniz, a\u015fa\u011f\u0131daki resimdeki gibi men\u00fcden derlenmi\u015f binary \u00e7\u0131kar k\u0131sm\u0131n\u0131 se\u00e7eceksiniz. Bu \u015fekilde 2 dosya \u0130NO dosyas\u0131n\u0131n bulundu\u011fu yere kay\u0131t edilecek. Bu dosyalardan bootloader <strong>olmayan<\/strong> dosyay\u0131 se\u00e7eceksiniz. Proteustaki HEX program k\u0131sm\u0131na gelecek. Bu \u015fekilde kullanabilirsiniz. UNO modelini ise a\u015fa\u011f\u0131daki siteden bulabilirsiniz.<\/p>\n<p><a href=\"https:\/\/www.theengineeringprojects.com\/2015\/12\/arduino-library-proteus-simulation.html\" target=\"_blank\" rel=\"noopener\"><strong>Proteus i\u00e7in Arduino modeli.\u00a0<\/strong><\/a><\/p>\n<p><a href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/derlenmis_binary.png\" rel=\"lightbox[1373]\"><img decoding=\"async\" class=\"lightbox aligncenter wp-image-1399 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/derlenmis_binary.png\" alt=\"\" width=\"460\" height=\"272\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 460px; --smush-placeholder-aspect-ratio: 460\/272;\" \/><\/a><\/p>\n<p><strong>Proteus \u00fczerinde arduino uno edit properties( ayarlar\u0131)<\/strong><br \/>\n<img decoding=\"async\" class=\"aligncenter size-full wp-image-1400 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2019\/06\/uno_edit.png\" alt=\"\" width=\"1023\" height=\"777\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1023px; --smush-placeholder-aspect-ratio: 1023\/777;\" \/><\/p>\n<p><a href=\"https:\/\/drive.google.com\/open?id=1K7a2ADuTZjB_10j83genpV2gjkCT0e0C\" target=\"_blank\" rel=\"noopener\"><strong>T\u00fcm programlar\u0131ma bu linkten ula\u015fabilirsiniz.<\/strong><\/a><\/p>\n<p><strong>OTOPARK projesi ger\u00e7ek devre video :<\/strong><iframe data-src=\"https:\/\/www.youtube.com\/embed\/-N-F13Dl0C4\" width=\"900\" height=\"506\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p class=\"title style-scope ytd-video-primary-info-renderer\"><strong>Arduino SDcard kullan\u0131m\u0131 , Ger\u00e7ek devre \u00fczerinde.<\/strong><br \/>\n<iframe data-src=\"https:\/\/www.youtube.com\/embed\/Y0aEUFvHIbw\" width=\"900\" height=\"506\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><strong>Proteus+Arduino+ SDcard kullan\u0131m\u0131 ve Proteus i\u00e7in IMAGE dosyas\u0131 haz\u0131rlama. Otopark projesi Proteus versiyon.\u00a0<\/strong><br \/>\n<iframe data-src=\"https:\/\/www.youtube.com\/embed\/9BE8PHQnHmM\" width=\"900\" height=\"506\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Dikkat :<\/strong><\/span> (<strong>Videoda Bir yerde yanl\u0131\u015f bir ifade kullan\u0131ld\u0131, ID3 ve ID4 denildi yanl\u0131\u015f oldu.<\/strong>) Do\u011frusu, MP3 TAG, ID3 V1.0 ile ba\u015flar.\u00a0 &#8230;\u00a0 ID3 V2.4.0 e kadar gider.<\/p>\n<p><a href=\"https:\/\/drive.google.com\/open?id=1K7a2ADuTZjB_10j83genpV2gjkCT0e0C\" target=\"_blank\" rel=\"noopener\"><strong>T\u00fcm programlar\u0131ma bu linkten ula\u015fabilirsiniz.<\/strong><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu konumuzu SD CARD lara ay\u0131rd\u0131m. Facebook gruplar\u0131nda zaman zaman sorulan sorulara cevap verebilmek i\u00e7in deneme yapmam gerekiyordu. Bu deneme i\u00e7in \u00f6ncelikle sd card \u00e7al\u0131\u015fmas\u0131n\u0131 g\u00f6rmeliydim. SDcard lar\u0131n FAT system&#8230; <\/p>\n","protected":false},"author":1,"featured_media":1405,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,14,21],"tags":[],"class_list":["post-1373","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-easylcd","category-proteus"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1373","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/comments?post=1373"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1373\/revisions"}],"predecessor-version":[{"id":2480,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1373\/revisions\/2480"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/1405"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=1373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=1373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=1373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}