Სარჩევი:

მიკროკონტროლის ქსოვილის ტონის გენერატორი C- კოდში: 8 ნაბიჯი (სურათებით)
მიკროკონტროლის ქსოვილის ტონის გენერატორი C- კოდში: 8 ნაბიჯი (სურათებით)

ვიდეო: მიკროკონტროლის ქსოვილის ტონის გენერატორი C- კოდში: 8 ნაბიჯი (სურათებით)

ვიდეო: მიკროკონტროლის ქსოვილის ტონის გენერატორი C- კოდში: 8 ნაბიჯი (სურათებით)
ვიდეო: Basic microcontroller debugging using TINA 2024, ნოემბერი
Anonim
მიკროკონტროლის ქსოვილის ტონის გენერატორი C კოდში
მიკროკონტროლის ქსოვილის ტონის გენერატორი C კოდში

გასული წლის ოქტომბრის ბოლოს, მომხმარებლის ინსტრუქციამ carmitu– მ გამომიგზავნა შეტყობინება ჩემი ლანჩბოქსის ნახვის შემდეგ. მისი გზავნილიდან: მე ვასწავლი მუსიკას დაწყებით სკოლაში. ჩვენ ვთამაშობთ უამრავ ჩამწერ მუსიკას. ანუ ბავშვები თამაშობენ პატარა ფლეიტებზე …… მე მყავს რამდენიმე სპეციალური საჭიროების მქონე ბავშვი, რომელთაც შეუძლიათ გამოიყენონ ეს შავი პლაკატების წრეები წრეებით, რომლებზეც არის შენიშვნის სახელი. ეს სტუდენტები წრეებს უბიძგებენ ნოტების სახელებით, ხოლო დანარჩენი მოსწავლეები უკრავენ სიმღერას … განსაკუთრებული საჭიროების მქონე ბავშვთა უმეტესობას შეუძლია ამის გაკეთება საკმაოდ კარგად და დროულად მუსიკით. რასაც მე ვეძებ, არის ძალიან მარტივი ხმის გენერატორის შექმნა, რომ ამ ბავშვებს შეეძლოთ იგივე მოედანზე დაკვრა, რასაც ისინი თამაშობენ სტუდენტების მიერ მათ ჩამწერებზე. მე მხოლოდ რამდენიმე მოედანი ვიქნებოდი. ვიფიქრე, რომ რაღაც მრგვალი ღილაკების მიმაგრება შეიძლებოდა მათი მრგვალი წრეების ქვედა ნაწილზე, რათა მათზე დაჭერისას პატარა დინამიკიდან ხმა გამოსულიყო, საკმარისად ხმამაღალი, რათა მათ მოესმინათ. დედა რომ ჰყავს მასწავლებელი და მოსწონდა სკოლა, როგორ შევეწინააღმდეგო? სიმართლე გითხრათ არ შემეძლო. ეს არის საკმაოდ ქრონიკა პროექტისა და ინსტრუქცია, თუ როგორ უნდა ავაშენოთ საკუთარი.

ნაბიჯი 1: დასაწყისი ან რატომ ვერ დავრჩებოდი ანალოგზე

დასაწყისი ან რატომ ვერ შევრჩი ანალოგს
დასაწყისი ან რატომ ვერ შევრჩი ანალოგს

კარგი რამ იწყება შემდეგ გვერდზე. თუ გსურთ იცოდეთ როგორ დავასრულე ჩემი ნაწილების გამოყენება, წაიკითხეთ. ჭეშმარიტი ქრონომეტრი: პროექტის მიცემის შემდეგ მე ვიფიქრე მაშინვე ვიფიქრე პიეზო ტონის გენერატორზე ჩემი ოპ-ამპსის ტყის მიმი III წიგნიდან. როგორც ჩანს, კარგი გზაა, ეს მხოლოდ პიეზოა, 741 IC და რამდენიმე პასიური კომპონენტი. დიდი საქმე არა? მას აქვს 2 პრობლემა, 1) როდესაც თქვენ დააჭირეთ ღილაკს, შესაძლებელია შეცვალოთ მოედანზე 2) მისი დალაგება თითქმის შეუძლებელია. პირველი შეიძლება დაიძლიოს ზოგიერთი დებუნს ტექნოლოგიით, თუმცა მე არ ვიცოდი როგორ გამეკეთებინა ეს სხვა მრიცხველის დამატების გარეშე. ეს ასევე შეიძლება იყოს პიეზოს გამოყენების პრობლემა. მეორე საკითხი უხერხული გახდა, როდესაც თქვენ დაიწყეთ გარკვეული მოედნის დარტყმის მცდელობა. 555 -ზე რას იტყვით? მონაცემთა ცხრილში ნაჩვენებია დროის გამუქების ფუნქცია, რომელიც დაფუძნებულია რეზისტორებსა და კონდენსატორებზე. რაც შესანიშნავია მანამ, სანამ არ დაიწყებთ რეალური სამყაროს ნაწილების რეალური მნიშვნელობების აკრეფას, ეს მაშინ როდესაც თქვენ აღმოაჩენთ, რომ 440 ჰც -ის სიმაღლეზე დარტყმა ცოტათი რთულდება. თქვენ შეგიძლიათ გამოიყენოთ მორთული ქოთნები, რომ ის მოწესრიგდეს, მაგრამ დროთა განმავლობაში ისინი მოძრაობისკენ მიდრეკილნი არიან. მუდმივად აკონტროლებდა ინსტრუმენტს, რომელიც შედგენილია ნაწილების ღირებულებისა და რაოდენობის სწრაფი ზრდის გამო, და ჩემმა მეუღლემ რომ შეცვალა მოედანზე, როდესაც დააჭირა ღილაკს, მოკლა 555 ამ პროექტისათვის. op-amps რადგან ჩემს დაბადებამდე. რამდენად ძნელი იქნებოდა მართლაც მარტივი, რამდენიმე ნაწილისა და კონკრეტული ჩანაწერების გაკეთება? უფრო მძიმე ვიდრე მეგონა. ამ დიზაინის უმეტესობა ძალიან რთულია ამ პროექტისთვის. Synth დიზაინერები გამოირჩევიან სრულყოფილი ტალღის ფორმით/ტონით. ეს პირდაპირ ეწინააღმდეგება პროექტს, რომელიც სავარაუდოდ საკმაოდ იაფი იქნება სკოლის ან მასწავლებლის ბიუჯეტისთვის. კლავიატურის შექმნა საკმაოდ ადვილია, ეს მხოლოდ რამოდენიმე წინააღმდეგობა და ძალაა, ან რამოდენიმე დიოდი და ძალა. ეს არის მიკროსქემის დანარჩენი დიზაინი და პერსონალური კომპიუტერების ღირებულება, რომელიც იწყებს ხელიდან გამოსვლას ვინმესთვის ელექტრონიკის საწყის ეტაპზე. პროექტის ხელახალი განმარტება: ასე რომ, პროექტი ხელახლა განისაზღვრა მანამ, სანამ მე ნამდვილად არ დავიწყებდი წასვლას. მე მჭირდებოდა ისეთი რამ, რასაც შეეძლო სპიკერის პინის შეცვლა დროულად, ღილაკის დაჭერით. მე არ მინდოდა PCB– ის დიზაინი და ყიდვა. მას უნდა გამოეყენებინა რაც შეიძლება ნაკლები კომპონენტი და შეიკრიბოს დამწყებთათვის. მთელი დრო სახეში მიყურებდა. დიჰ !! მიკროკონტროლერი! მიკროკონტროლერი: ასე რომ, მას შემდეგ რაც შევიძინე როგორც თანამედროვე მოწყობილობები Bare Bones Arduino ნაკრები, ასევე Evil Mad Scientist Simple Target Board და გავუშვი ჩემს მაგიდაზე თვეების განმავლობაში არ გამოვიყენე, მე მქონდა სრულყოფილი შესავალი პროექტი. დავიწყე იმ დროის დათვალიერება, რაც საჭიროა ორივე ერთად, კოდის სწავლის მრუდი, ღირებულება, საჭირო დამატებითი ნაწილები და გავაკეთო ის რაც მე მსურს და დასახლდა სამიზნე დაფაზე. ღირებულება საკმაოდ თანაბარი იყო, $ 15 პლუს $ 20 FTDI კაბელი Arduino– სთვის, $ 12 პლუს $ 22 USBtinyISP პროგრამისტი. მე უკვე ვიცოდი C ++ იმ პატარა კოლეჯიდან, რომლის გაძლებაც შემეძლო და ვივარაუდე, რომ მიკროკონტროლერებისთვის C არ იქნებოდა ცუდი, ხოლო გარდა იმისა, რომ ნათურა მოციმციმე დავრწმუნდი, რომ ჩემი ნაკრები სწორად მოვათავსე, არდიუინოს გამოცდილება არ მქონია. ორივე შეიძლება დამონტაჟდეს. ეს იყო საკმაოდ ბევრი გადაყრა, ამიტომ მე გადავწყვიტე ორი ნაწილის ნაკლები ნაწილი, სამიზნე დაფა.

ნაბიჯი 2: რა გჭირდებათ Rev 1

რაც გჭირდებათ Rev 1
რაც გჭირდებათ Rev 1

ნაწილები 5 pk $ 2.75 http 5) 3.49 $ (4 შეფუთვა) https://www.radioshack.com/product/index.jsp?productId=2062539"AAA "ბატარეის დამჭერი $ 1.79 $ https://www.radioshack.com/product/index.jsp? ProductId = 2102735SPST Submini Slide Switch (სურვილისამებრ დენის გადამრთველზე) $ 2.69 (2 პაკეტი) https://www.radioshack.com/product/index.jsp?productId=2062490LED და რეზისტორი (სურვილისამებრ, თუ გსურთ დენის ნათურა) $ უნდა იყოს უფასო თუ ისინი ტყუიან გარშემო მავთული $ ასევე უნდა იწვა გარშემო ვერცხლისფერი შედუღება (თუ ეს ბავშვებთან ახლოს მიდის სადმე არ უნდა გამოიყენოთ ტყვია, მშობლები საკმაოდ უცნაურები ხდებიან ასეთ რამეებში;)) ალკოჰოლის გახეხვა (ხელახლა გადაადგილების ნაკადი) თუ გსურთ რომ დაზოგოთ რამდენიმე ადგილი, თქვენ არ გჭირდებათ ნაწილების მიღება RadioShack– დან. მე გავაკეთე, რადგან ისინი ახლოს არიან და პროგნოზირებადია.

ნაბიჯი 3: შეკრება Rev 1

ასამბლეა Rev 1
ასამბლეა Rev 1
ასამბლეა Rev 1
ასამბლეა Rev 1

განათავსეთ თქვენი ნაწილები ისე, როგორც ნაჩვენებია. დარწმუნდით, რომ გამოიყენეთ სპირტი და ფუნჯი, როდესაც დაასრულებთ შედუღების ნებისმიერი ნაკადის მოშორებას. სქემატური ქვემოთ მოცემულია მათთვის, ვინც მას ამჯობინებს. D1 და R1 შეიძლება იყოს ის, რაც გსურთ, ეს მხოლოდ დენის ნათურაა. C1 არის მხოლოდ იმისთვის, რომ ენერგია ოდნავ უფრო თანმიმდევრული გახდეს. მე გამოვიყენე 10uF. ეს სქემა იგივეა გვიანდელი ვერსიებისთვის, უბრალოდ შეცვალეთ ბიძგის ღილაკები ქსოვილის გადამრთველებისთვის. ბოლო გადახედვაში მე დავამატე კონცენტრატორები PC4 და PC5 ან პინები 27 და 28.

ნაბიჯი 4: რა გჭირდებათ Rev 2

რაც გჭირდებათ Rev 2
რაც გჭირდებათ Rev 2

ასე რომ, თქვენ ძირითადად ცვლით რადიო შაკის ღილაკებს ხელით დამზადებული ქსოვილისთვის. თქვენ გჭირდებათ: ქსოვილის მრავალი ფერი, ან ერთი ფერი, თუ გსურთ რომ ყველა ნოტი ერთი და იგივე ფერი იყოს. ქსოვილის უახლოესი მაღაზიის ქვილთი, საუკეთესო ადგილია ამის იაფად მისაღებად. ქვილთი მეოთხედი არის $ 1.50 და თქვენ შეგიძლიათ მიიღოთ ერთი ტონა კონცენტრატორი ერთიდან. გამტარი ქსოვილი, მე ვთავაზობ Flectron ქსოვილს LessEMF- დან ეს არის $ 20 12 "x54" ნაჭრისთვის. თქვენ შეგიძლიათ შეიძინოთ ისინი ქსოვილების უმეტეს მაღაზიებში იაფად. JoAnn– ს აქვს ინსტრუმენტი და 25 დოლარად, ამისათვის დაგჭირდებათ ჩაქუჩი. მავთული, მე გამოვიყენე 22AWG, მე გირჩევთ უფრო მცირე ზომის თუ გაქვთ ეს. შერწყმა, რომ მიიღოთ ფერადი და გამტარი ქსოვილი ერთად. ჰკითხეთ მაღაზიას და ალბათ შეძლებთ ეზოსთან ყიდვას. ეს ალბათ მშვენივრად იმუშავებს, თუმცა მე გირჩევთ ვინმეს სთხოვოთ დარტყმა, თავიდან მართლაც ფხვიერი ნივთები გამოვიყენე, შემდეგ გადავედი რაღაც უფრო მჭიდრო ნაქსოვზე. მე გირჩევთ, უბრალოდ სცადოთ რამდენიმე განსხვავებული, სანამ არ იპოვით იმას, რაც საუკეთესოდ მუშაობს. სითბოს შეკუმშვის მავთულები ერთმანეთთან ერთად, როდესაც ისინი გაივლიან ერთმანეთს და ისინი ბევრად უკეთესები დარჩებიან.

ნაბიჯი 5: შეკრება Rev 2

ასამბლეა Rev 2
ასამბლეა Rev 2
ასამბლეა Rev 2
ასამბლეა Rev 2
ასამბლეა Rev 2
ასამბლეა Rev 2

დადეთ მრავალფუნქციური ქსოვილი ერთმანეთზე და გაჭერით კვადრატი, ის არ უნდა იყოს სრულყოფილი. გაუთოეთ ქსოვილი, რომ ამოიღოს ნაკეცები, კვლავ გადააფარეთ ერთმანეთზე და დარწმუნდით, რომ კიდეები ემთხვევა. გაჭერით ნებისმიერი კიდე, რომელიც არ არის. მოჭერით ზედა და ქვედა რაუნდი, დატოვეთ მარცხენა და მარჯვენა მხარეები სწორი. კერვის შემდეგ თქვენ გადაატრიალებთ გადამრთველს, ასე რომ არ გახადოთ მომრგვალებული მხარეები ძალიან მრგვალი და დატოვოთ საკმარისი სიმაღლე ბრტყელ გვერდებზე, რომ დასრულების შემდეგ ადვილად მოახდინოთ გადამრთველი. დაამრგვალეთ პირველი და ბოლო გადართვის ბრტყელი მხარე. მიჰყევით თქვენს სამკერვალო მანქანას და ორი მრგვალი ერთად დააწყვეთ ისე, რომ კარგი მხარე იყოს ერთმანეთის პირისპირ და ბრტყელ ნაწილებზე დააკეროთ ნაკერი. შეკერილი, მოჭრილი კვადრატები გამტარი ქსოვილისგან და დაუკრა ერთ მხარეს. გაჭერით მავთული სიგრძეზე და გაწურეთ ერთი ბოლო. შეაერთეთ მავთული ერთ -ერთი თვალის გარშემო. (შედუღება, სავარაუდოდ, არ იქნება მიმაგრებული თვალზე) გაჭერით პატარა ნაჭერი ქსოვილში ერთ კუთხეში და ჩაქუჩით დააწყვეთ ქსოვილი და მავთული. ამოიღეთ საყრდენი შედუღებიდან და შეაერთეთ გამტარი ქსოვილი ფერადი ქსოვილის უკანა ნაწილზე. გაიმეორეთ ყველა გადამრთველისთვის. რამის გასაადვილებლად, თქვენ შეგიძლიათ გაათბოთ მავთულის შეკუმშვა, როდესაც ერთი მავთული გადის მავთულს მომდევნო გადართვისთვის. მიიღეთ ან გააკეთეთ ქსოვილის ნაჭერი გადამრთველის სიგრძეზე და გაჭერით გამტარი ქსოვილის ზოლი მისი სიგრძით. ფერადი კონცენტრატორებისგან განსხვავებით, ეს არის ერთი გრძელი ნაჭერი. ეს იქნება ის, რასაც ღილაკები შეეხებიან კავშირის დასამყარებლად. გაჭერით პატარა ნაპრალი და მიამაგრეთ მას მავთული თვალით, როგორც ფერადი გადამრთველები. შეაერთეთ იგი ქვედა ქსოვილის უკანა ნაწილზე. შეკერეთ ზედა და ქვედა გამტარ ქსოვილთან ერთად, გამოიყენეთ ეზოს ჯოხი, რომ შეკეროთ ნაკრები მას შემდეგ, რაც შეკერილი იქნება. რამდენიმე პატარა ხვრელი გაჭერით, მე გამოვიყენე ჩოპშტიკი წრე, შემდეგ ამოიღეთ ჩოპსტიკი და გააკეთეთ გაჭრა. გაჭერით ისინი ფორმაში და ჩადეთ ჩამრთველებში. ეს არის ის, რაც ატარებს გამტარ ქსოვილს. ეს შეიძლება იყოს უფრო ადვილი, რომ ჩადოთ ჩამკეტი, როდესაც თქვენ გადაატრიალებთ კონცენტრატორებს ამის შემდეგ. პერსონალი, რომელსაც მე ვიყენებდი, საკმაოდ ცუდად იყო, როდესაც მე მას ჩავყრიდი და მე მომიწია სხვადასხვა დარტყმა. საბოლოოდ დაკიდეთ მავთულები სამიზნე დაფაზე და თქვენ მზად ხართ. გრძელი ქვედა ზოლი დაფქული იქნება.

ნაბიჯი 6: რა გჭირდებათ Rev 3

რაც გჭირდებათ Rev 3
რაც გჭირდებათ Rev 3

Rev 3 -ში მე გავაკეთე კონცენტრატორები გაყვანილობისგან დამოუკიდებლად. ამან დაზოგა ტონა დრო. მე ასევე მომწონს დასრულებული შედეგის სახე. ასე რომ, აქ არის ახალი ნაწილები, რაც გჭირდებათ: Snaps, Just got them from JoAnn's. მათ მოყვეს ინსტალაციის ინსტრუმენტი, რომელიც არ არის ცუდი 7 დოლარად, მე ვთავაზობ ერთ -ერთ საყრდენ ინსტრუმენტს, რადგან მე უნდა გამოვყო ჩემი ინსტრუმენტი, რომ დავაყენო შუაში შუაში. შეკერვა კარგი ალტერნატივა იქნება, თუმცა მათ უფრო დიდი დრო სჭირდებათ. გამტარ ძაფს, Spark Fun- ს აქვს ნივთები, რომლებიც შეიძლება შევიდეს თქვენს სამკერვალო მანქანაში. ძალიან ნელა უნდა წავსულიყავი ჩემს აპარატში, თორემ ძაფი გაწყდებოდა. თქვენი გარბენი შეიძლება განსხვავდებოდეს

ნაბიჯი 7: შეკრება Rev 3

ასამბლეა Rev 3
ასამბლეა Rev 3
ასამბლეა Rev 3
ასამბლეა Rev 3
ასამბლეა Rev 3
ასამბლეა Rev 3
ასამბლეა Rev 3
ასამბლეა Rev 3

ეს გადახედვა ბევრად უკეთესი იყო ვიდრე წინა მშენებლობამდე. გარდა ამისა, მოსახსნელი კონცენტრატორების დაცვა არაერთხელ დამიზოგავს გონებას. დაიწყეთ ბაზის დამზადებით. ეს მხოლოდ ერთი quilting მეოთხედი დაკეცილი ნახევარი. ზემოდან დაადეთ ფენა და შეკერეთ, დატოვეთ ხვრელი, რომ შეაბრუნოთ იგი. დააყენეთ ნივთი ხვრელში და თქვენ ძირითადად გაქვთ ბალიშის ტიპი. მე ის გადავიხარე, ასე რომ უფრო ადვილი იყო მასთან მუშაობა. გამოიყენეთ უბრალო ძაფი და გააფუჭეთ. მე გავაკეთე ბრილიანტი ამ ერთზე, მაგრამ შესაძლოა მომავალ ჯერზე დრაკონი ჩავდოთ უკან, ან რაიმე მაგარი. ახლა, გადამრთველებზე. მე მომწონს ეს დიზაინი, რადგან თქვენ შეგიძლიათ გააკეთოთ ეს ტონალობა დროზე ადრე და უბრალოდ გამოიყენოთ ის, რაც გსურთ. დაიწყეთ მუყაოს, ქაღალდის ან ქსოვილის ჯართის გამოყენებით და გაჭერით მისგან მსხლის ფორმა. გამოიყენეთ ეს როგორც სახელმძღვანელო თითოეული გადამრთველისთვის ზედა და ქვედა მოჭრისთვის. მე ვჭრი ერთ ფერს თითოეულ ფსკერზე და განსხვავებულ ფერს მწვერვალებისთვის, მაგრამ თქვენ შეგიძლიათ იყოთ შემოქმედებითი და გააკეთოთ ის, რაც გსურთ. ჩამოაცილეთ თქვენი გზამკვლევი ლოლიპოპის ფორმას, რომელიც ადვილად მოთავსდება გადართვის შიგნით. გაახანგრძლივეთ "ჯოხი", რათა შეძლოს "მსხლის" კიდეზე შემოხვევა. გაჭერით ფორმა შემდუღებელი და გამტარი ქსოვილისაგან და შეაერთეთ გამტარი ქსოვილის ერთი მხარე. ამოიღეთ საყრდენი შერწყმის მასალიდან და შეაერთეთ იგი ქსოვილის ზედა ნაწილში, რომელიც იქნება ქვედა და ქსოვილის ქვედა ნაწილი, რომელიც იქნება თავზე. გადააფარეთ ზედმეტი ნაწილი თავზე. გადადით სამკერვალო მანქანაზე და დაადეთ ხვრელები ზედა და ქვედა ქსოვილს შორის. შეკერეთ გამტარი ქსოვილის გარეთ და გამოტოვეთ გადართვის "ჯოხის" ნაწილი. აღმოვაჩინე, რომ შესაძლებელია ზედა გამტარი ქსოვილის შეკერვა ქვედა ნაწილის შესაქმნელად. უმჯობესია არ გაკეროთ გამტარი ქსოვილი. მიამაგრეთ ჩამკეტები და გადართვა კეთდება. მე უფრო ადვილად გამოვიყენე მამრობითი ვადამდელი ყველა ქვედა/GND კავშირისთვის და ქალი ვადამდელი ყველა ზედა. ეს ხდის ყველა კონცენტრატორს ურთიერთშემცვლელ. წრე: რაუნდის ჭრისას არის ის, რომ თქვენ გაქვთ ბევრი დამატებითი ბიტი. მე ავიღე ჩემი ნამსხვრევები, გამთლიანებული დიდი ნაჭრები გამტარ ქსოვილის დიდ ნაჭრებად და გამოვიყენე ის პატარა მართკუთხედების ამოსაჭრელად, რომელსაც მე ბალიშებად ვიყენებდი. უხეშად განალაგეთ თქვენი ჩამრთველები და შეუერთეთ ბალიშები ძირს იმდენი ადგილით, რომ მათ შეუკვეთოთ ხაზი და დაიჭიროთ. სამკერვალო მანქანის ფეხი, რომელსაც მე ვიყენებდი, გულმოდგინედ არ მიიჩნევდა, რომ მიახლოებულიყო, ამიტომ დაიმახსოვრე ეს და დაუთმე ადგილი. მას შემდეგ რაც მე მივიღე გამტარი ძაფი, რომელიც შეიძლებოდა შედიოდა ჩემს სამკერვალო მანქანაში, მე უბრალოდ შევკერე ხაზი ბალიდან ბალიშამდე და უკან. ნელა უნდა წავსულიყავი, თორემ ძაფი გაწყდებოდა, მაგრამ ეს იყო ტონით უფრო სწრაფად, ვიდრე ხელით კერვა. ასევე გამტარი ძაფით ბობინაზე და ნემსზე, მივიღე მართლაც კარგი მყარი კავშირი. პერსონალი გიჟდება, მაგრამ ცოტა ხელნაკეთი წებო ან ელმერსი ასუფთავებს ამას. ეცადეთ ხაზები ერთმანეთისგან კარგად დაშორდეს და არანაირი პრობლემა არ შეგექმნათ. საბოლოო შეკრება: დააჭერთ თქვენს ყველა კონცენტრატორს, დააკავშირეთ დაფა, ჩატვირთეთ კოდი და თქვენ დასრულებული ხართ. მე გამოვიყენე მავთული დაფიდან ბალიშამდე და შემდეგ ხელით შევიკერე მავთული ბაზაზე. მომდევნო ვერსიისთვის, მე დავამატებ დაფას პლასტმასის ყუთში ჩამკეტებით, რომ დავამაგრო ბაზაზე ისე, რომ მოჩვენებითი თითები არ გაიყოს.

ნაბიჯი 8: კოდი

კოდი
კოდი

თუ აქამდე ჩიპი არ დაგიპროგრამებიათ, ეს გარკვეულწილად საშიში ამოცანაა. ეს არ უწყობს ხელს ინსტრუმენტების გაფუჭებას და უმეტეს დროს თქვენ უნდა შეასრულოთ ერთი და იგივე ოპერაცია რამდენჯერმე. ორი საუკეთესო რესურსი, რაც მე ვიპოვე იმის გასაგებად, თუ რა ხდება არის გვერდი USBtinyISP– ისთვის, https://www.ladyada.net/make/usbtinyisp/ და ხმაურის სათამაშოების პროგრამირების ავარიული კურსი, http:/ /blog.makezine.com/archive/2008/05/noise_toy_crashcourse_in.html ამან უნდა შეძლოს თქვენი დაწყება.

ბევრს მოსწონს არდუინო ამ კოდირებისთვის და არაფერია ცუდი მის გამოყენებაში, გარდა იმისა, რომ მე ვგრძნობ, რომ ის ჩვეულებრივ ბადებს ბევრ უბრალო პროგრამას. ასევე, ვიცოდი C და არ ვიცნობ არდუინოს. ალბათ ერთ დღეს, თუ დრო იქნება.:) კოდი: {{{ # #ჩათვალე // გამოიყენეთ pin, რომ ჩართოთ SPK /// Typedefs ///////// typedef ხელმოუწერელი char u8; int main (void) {u8 btnState0; u8 btn სახელმწიფო 1; u8 btnState2; u8 btn სახელმწიფო 3; u8 btnState4; u8 btn სახელმწიფო 5; u8 btn სახელმწიფო 6; DDRB = (1 << DDB6); // დააყენეთ SPK გამომავალი PORTD = (1 << PD0) | (1 << PD1] | (1 << PD2] | (1 << PD3] | (1 << PD4]; // დააყენეთ ღილაკი მაღალი PORTC = (1 << PC4] | (1 << PC6]; TCCR2B = (1 << CS21); // დააყენეთ ტაიმერი სანამ (1) {btnState0 = ~ PINC & (1 << PC5); btnState1 = ~ PINC & (1 << PC4); btnState2 = ~ PIND & (1 << PD0); btnState3 = ~ PIND & (1 << PD1); btnState4 = ~ PIND & (1 << PD2); btnState5 = ~ PIND & (1 << PD3); btnState6 = ~ PIND & (1 << PD4); if (btnState0) {if (TCNT2> = 190) {PORTB ^= (1 << PD6); // გადაატრიალეთ SPK Pin TCNT2 = 0; }} if (btnState1) {if (TCNT2> = 179) {PORTB ^= (1 << PD6); // გადაატრიალეთ SPK Pin TCNT2 = 0; }} if (btnState2) {if (TCNT2> = 159) {PORTB ^= (1 << PD6); // გადაატრიალეთ SPK Pin TCNT2 = 0; }} if (btnState3) {if (TCNT2> = 142) {PORTB ^= (1 << PD6); // გადაატრიალეთ SPK Pin TCNT2 = 0; }} if (btnState4) {if (TCNT2> = 126) {PORTB ^= (1 << PD6); // გადაატრიალეთ SPK Pin TCNT2 = 0; }} if (btnState5) {if (TCNT2> = 119) {PORTB ^= (1 << PD6); // გადაატრიალეთ SPK Pin TCNT2 = 0; }} if (btnState6) {if (TCNT2> = 106) {PORTB ^= (1 << PD6); // გადაატრიალეთ SPK Pin TCNT2 = 0; }}}}}}} საიდან მოდის მოედნები? ცოტა მათემატიკა იყო საჭირო. ტაიმერის საათი ატმეგა 168 -ზე მუშაობს 1 მჰც -ზე. ეს ძალიან სწრაფია აუდიოსთვის, ასე რომ ჩვენ უნდა გამოვიყენოთ prescaler /8. მას შემდეგ, რაც ჩვენ გვჭირდება გადავაბრუნოთ გამომავალი პინი მაღლა და დაბლა, რათა გავაკეთოთ 1 ციკლი, ჩვენ უნდა გავყოთ პასუხი 2 -ზე, რათა მივიღოთ სწორი სიმაღლე. ფორმულა ასე გამოიყურება, Pitch კოდი = (1000000/8)/(სამიზნე სიხშირე*2) A (440) - ის იქნება 125000/880 = 142.045 ან 142 ჩვენი მიზნებისათვის, ვინაიდან მნიშვნელობა უნდა იყოს მთელი რიცხვი რა ჩანაწერების სამიზნე სიხშირეები შეგიძლიათ ნახოთ თითქმის ყველგან ინტერნეტში და ზოგადად ყველა ერთი და იგივეა. მე მაინც მინდა დავამატო შემთხვევის განცხადება ნაცვლად იმისა, რომ გამოვიყენო რამოდენიმე და გამოვიყენო PWM სპიკერის ხმისა და სიმაღლის უკეთ გასაკონტროლებლად, მაგრამ ჯერჯერობით, ეს მუშაობს.

გირჩევთ: