Სარჩევი:

დამოუკიდებელი Arduino 3.3V W / გარე 8 MHz საათი დაპროგრამებულია Arduino– დან ICSP / ISP– ით (სერიული მონიტორინგით!): 4 ნაბიჯი
დამოუკიდებელი Arduino 3.3V W / გარე 8 MHz საათი დაპროგრამებულია Arduino– დან ICSP / ISP– ით (სერიული მონიტორინგით!): 4 ნაბიჯი

ვიდეო: დამოუკიდებელი Arduino 3.3V W / გარე 8 MHz საათი დაპროგრამებულია Arduino– დან ICSP / ISP– ით (სერიული მონიტორინგით!): 4 ნაბიჯი

ვიდეო: დამოუკიდებელი Arduino 3.3V W / გარე 8 MHz საათი დაპროგრამებულია Arduino– დან ICSP / ISP– ით (სერიული მონიტორინგით!): 4 ნაბიჯი
ვიდეო: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, ნოემბერი
Anonim
დამოუკიდებელი Arduino 3.3V W / გარე 8 MHz საათი დაპროგრამებულია Arduino Uno– ით ICSP / ISP– ით (სერიული მონიტორინგით!)
დამოუკიდებელი Arduino 3.3V W / გარე 8 MHz საათი დაპროგრამებულია Arduino Uno– ით ICSP / ISP– ით (სერიული მონიტორინგით!)
დამოუკიდებელი Arduino 3.3V W / გარე 8 MHz საათი დაპროგრამებულია Arduino– დან ICSP / ISP– ით (სერიული მონიტორინგით!)
დამოუკიდებელი Arduino 3.3V W / გარე 8 MHz საათი დაპროგრამებულია Arduino– დან ICSP / ISP– ით (სერიული მონიტორინგით!)

მიზნები:

  • დამოუკიდებელი Arduino- ს შესაქმნელად, რომელიც მუშაობს 3.3 ვტ -ზე და 8 მეგაჰერცი გარე საათიდან.
  • მისი დაპროგრამება ISP– ს საშუალებით (ასევე ცნობილია როგორც ICSP, ჩართული სერიული პროგრამირება) Arduino Uno– დან (მუშაობს 5V– ზე)

    ჩამტვირთავი ფაილის შესწორება და ჩატვირთვის ჩამტვირთავი (ISP- ის საშუალებით)

  • შეძლოთ სერიული ინფორმაციის წაკითხვა დამოუკიდებელი Arduino– დან FTDI კაბელის საშუალებით

    შეძლებს სერიული ინფორმაციის წაკითხვას დამოუკიდებელი Arduino– დან FTDI კაბელის გარეშე

პრეამბულა:

მე ვცდილობდი აეშენებინა ჩემი დამოუკიდებელი პროექტი, მაგრამ ვერ ვნახე ყოვლისმომცველი სახელმძღვანელო დამოუკიდებელი არდუინოს გაშვების, პროგრამირებისა და მონიტორინგის შესახებ - განსაკუთრებით ის, რომელიც მუშაობს 8 მჰც გარე საათიდან და 3.3 ვ და დაპროგრამებულია Arduino UNO– ს მიერ. მე შევადგინე რამდენიმე ცალკეული სახელმძღვანელო და შევეცადე მეჩვენებინა, საიდან მივიღე ინფორმაცია, რათა მიმეცა კრედიტი, სადაც კრედიტი იყო საჭირო. ეს სახელმძღვანელო არის მრავალი დღის განმავლობაში გადაწყვეტილებების ძებნის და მისი ნაწილების პოვნა იმ დროს, როდესაც მე ვაშენებდი ჩემს პროექტს. ასევე, მე დავუკავშირე რამდენიმე სასარგებლო პროდუქტი, რომელიც მოვიდოდა ხელში არა იმიტომ, რომ მე რომელიმე მათგანთან ვარ დაკავშირებული კომპანიებს, არამედ იმიტომ, რომ აქტუალურია კონკრეტული პუნქტების ჩართვა, რომელსაც მე ვგულისხმობ.

საერთო კითხვები დაწყებამდე:

რატომ გჭირდებათ მისი დაპროგრამება ISP– ით და მონიტორინგი FTDI– ს საშუალებით? რატომ არ შეგიძლია მისი პროგრამირება FTDI– ს საშუალებით?

ჩვენ უნდა შევცვალოთ დაუკრავენ პარამეტრები ახალი ჩამტვირთველის დაწვით და ამას სერიული კომუნიკაციის საშუალებით ვერ გააკეთებთ. თქვენ უნდა ჩაწეროთ ჩამტვირთავი ინტერნეტ პროვაიდერის საშუალებით. ეს ასევე სასარგებლოა მათთვის, ვისაც არ აქვს წინასწარ ჩატვირთული ATMEGA328 ჩიპი.

რატომ არ გამოვიყენო ISP კაბელი სერიული მონიტორინგით, როგორც ეს?

ალბათ, ჩემ მსგავსად, თქვენ უბრალოდ არ გყავთ ერთი და ვიდრე ელოდებით ერთის გაგზავნას, მოგწონთ გამოიყენოთ ის რაც გაქვთ! მე შემთხვევით მაქვს FTDI კაბელი (თუმცა საბოლოოდ აღმოაჩენთ, რომ არც გჭირდებათ): ეს თქვენს ცხოვრებას აადვილებს).

არ მჭირდება ლოგიკური დონის გადატანა Uno– დან დამოუკიდებელ Arduino– ზე?

დიახ, შენ აკეთებ, მაგრამ მე გაჩვენებ, როგორ გააკეთო ეს შენ თვითონ. ISP კაბელის მსგავსად, მე არ მაქვს ერთი.

მინდა გარე ენერგიის გარეშე დავკარგო. Როგორ გავაკეთო ეს?

არსებობს უამრავი სახელმძღვანელო, რომელიც აჩვენებს თუ როგორ უნდა გაუშვათ დამოუკიდებელი Arduino ბატარეის ენერგიაზე. მე დავწერ როგორ გავაკეთე ეს და დავბმულობ აქ [ჩავსვი მოგვიანებით].

ᲒᲘᲓᲘ

ნაბიჯი 1: შექმენით დამოუკიდებელი არდუინო

დამოუკიდებელი არდუინოს მშენებლობა
დამოუკიდებელი არდუინოს მშენებლობა
დამოუკიდებელი არდუინოს მშენებლობა
დამოუკიდებელი არდუინოს მშენებლობა

1) შექმენით დამოუკიდებელი არდუინო ამ ბმულიდან. სახელმძღვანელოს ერთადერთი ნაწილი გჭირდებათ "ATMEGA8/168/328 საფუძვლები".

  • თქვენ შეგიძლიათ ჩართოთ დამოუკიდებელი Arduino 3.3V– დან Arduino Uno– დან. (შეგიძლიათ გამოტოვოთ გაკვეთილის პირველი ნაწილი, სახელწოდებით "წრეწირის დამატება კვების ბლოკში".
  • შეცვალეთ 16 MHz საათი 8 Mhz საათით.
  • დაამატეთ 0.1 uF თავსახური: VCC და Gnd (ორივე მხარეს) VRef და Gnd შორის.

    • მე არ მაქვს ეს სურათზე შეტანილი, მაგრამ მაქვს ჩემს პროექტებში!
    • მე ვიცი, რომ ეს არის 16 MHz ოსცილატორი ფოტოში. მე გადავიღე ფოტო სანამ გავარკვევდი ყველაფერს რაც გავაკეთე სახელმძღვანელოში!

ATMEGA328p გამოსახულების წყარო pinout აქ.

პრობლემების მოგვარების საერთო რჩევები

  • დარწმუნდით, რომ თქვენ გადააყენეთ მაღალი დონით 10k რეზისტორის საშუალებით VCC– დან ATMEGA– ს პინ 1 – ზე. თუ პინი დაფუძნებულია ან მცურავია ის არ იმუშავებს.
  • ორმაგად შეამოწმეთ, რომ თქვენ სწორად გაქვთ ჩასმული მავთულები და ოსცილატორი.
  • დარწმუნდით, რომ იყენებთ 22pF კონდენსატორებს 8 MHz ოსცილატორისთვის. სხვაგვარად არ იმუშავებს.
  • დარწმუნდით, რომ მოწყობილობა იკვებება.

ნაბიჯი 2: ISP გაყვანილობა

ISP გაყვანილობა
ISP გაყვანილობა
ISP გაყვანილობა
ISP გაყვანილობა

2) შექმენით ISP ნაწილი

თქვენ მიჰყვებით ამ სახელმძღვანელოს აქ მცირე, მაგრამ ძალიან მნიშვნელოვანი ნაბიჯით.

მიზეზი, რის გამოც თქვენ არ შეგიძლიათ უბრალოდ მიჰყევით სახელმძღვანელოს, არის ის, რომ თქვენ აკლია გადამწყვეტი ნაწილი: თქვენ არ შეგიძლიათ პროგრამირება გაუკეთოთ 3.3 ვ მოწყობილობას პირდაპირ 5 ვ კავშირებიდან. (ყოველ შემთხვევაში, მე არ შემეძლო: სანამ არ გავაკეთებდი, ის არ იმუშავებდა). თქვენ უნდა ჩადოთ ლოგიკური დონის ცვლადი, რომელიც 5V სიგნალს UNO– დან გადააქვს 3.3V Standalone Arduino– ზე.

თუ თქვენ არ გაქვთ ლოგიკური დონის გადამრთველი დაფა, შეგიძლიათ გააკეთოთ ის რეზისტორების გამოყენებით. ყველა ლოგიკური დონის შემცვლელი ნამდვილად არის (სანამ თქვენ გადადიხართ ქვემოთ) არის ძაბვის გამყოფი. თქვენ დაგჭირდებათ 6 იგივე რეზისტორი, არაფერი ძალიან მაღალი ან ძალიან დაბალი. მე გამოვიყენე 220 ohm რეზისტორი, მაგრამ დარწმუნებული ვარ 10k რეზისტორიც კი იმუშავებს.

SCK (ციფრული პინი 13) და MOSI (ციფრული პინი 11), გამოიყენეთ ძაბვის გამყოფი ძაბვის ერთი მესამედი შესამცირებლად. არსებითად თქვენ გექნებათ ერთი Uno SCK და MOSI, შემდეგ რეზისტორი (220 ohm), შემდეგ SCK და MOSI დაკავშირებულია დამოუკიდებელ Arduino– სთან და 2 რეზისტორი (სულ 440 ohm) მიწასთან.

ასე რომ, წაიკითხეთ სახელმძღვანელო, რომელიც დაკავშირებულია ამ ნაწილის დასაწყისში, მაგრამ ჩართეთ ძაბვის გამყოფი SCK- სა და MOSI- ს შორის. გახსოვდეთ, SCK, MISO, MOSI და RESET არის ქინძისთავები 13, 12, 11 და 10 Uno– ზე, მაგრამ არის 19 ქინძისთავები, 18, 17 და 1 დამოუკიდებელ არდუინოზე!

პრობლემების მოგვარების საერთო რჩევები

  • შეამოწმეთ გაყვანილობა

    • თუ პროგრამის წერის მცდელობისას იღებთ ყველა მოწყობილობის ხელმოწერას, მაშინ თქვენი გაყვანილობა თითქმის გამორთულია, ან დამოუკიდებელი არდუინო არ იღებს ენერგიას.
    • ასევე, დარწმუნდით, რომ თქვენ გაქვთ გადატვირთვის მავთული 10 -დან Uno– ზე 1 დამოუკიდებელ Arduino– ზე
  • შეამოწმეთ ძაბვის გამყოფები

    დარწმუნდით, რომ თქვენ გაქვთ ძაბვის გამყოფი თანაფარდობით 1: 2 (მაღალი მხარე: დაბალი მხარე) რეზისტორებისთვის SCK და MOSI- ისთვის. Მაგალითად. 220 რეზისტორი +5v მხარეს და შემდეგ 2 220 ohm რეზისტორი (სულ 440 ohm) მიწისკენ, სიგნალი დამოუკიდებელი არდუინოსკენ შუაში

ნაბიჯი 3: შეცვალეთ ჩამტვირთავი ფაილი, დაწვით ჩამტვირთავი და ატვირთეთ თქვენი ესკიზი

შეცვალეთ ჩამტვირთავი ფაილი, დაწვით ჩამტვირთავი და ატვირთეთ თქვენი ესკიზი
შეცვალეთ ჩამტვირთავი ფაილი, დაწვით ჩამტვირთავი და ატვირთეთ თქვენი ესკიზი
შეცვალეთ ჩამტვირთავი ფაილი, დაწვით ჩამტვირთავი და ატვირთეთ თქვენი ესკიზი
შეცვალეთ ჩამტვირთავი ფაილი, დაწვით ჩამტვირთავი და ატვირთეთ თქვენი ესკიზი

3) შეცვალეთ ჩამტვირთავი (boards.txt) ფაილი და ჩაწერეთ ჩამტვირთავი დამოუკიდებელ არდუინოში. ატვირთეთ ესკიზი

ჩამტვირთავი ფაილის რედაქტირება

იმისათვის, რომ გაუშვათ დამოუკიდებელი Arduino, თქვენ უნდა შეცვალოთ ჩამტვირთველის ბრაუნის დაუკრავენ პარამეტრები. წინააღმდეგ შემთხვევაში, თქვენ შეძლებთ ჩატვირთოთ ჩამტვირთავი მასზე, მაგრამ ვერ შეძლებთ რაიმე ესკიზის გაშვებას.

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

ჩემი დაფების ფაილი იყო შემდეგ ადგილას:

C: / პროგრამის ფაილები (x86) Arduino / აპარატურა / arduino / avr

თუმცა, თქვენ შეიძლება გქონდეთ ერთზე მეტი boards.txt ფაილი თქვენს ტექნიკის საქაღალდეში, გარდა /arudino /. თქვენ აპირებთ შეცვალოთ boards.txt ფაილი / arduino / ადგილას, რადგან თქვენ აპირებთ ATMEGA328p (3.3V, 8 MHz) განყოფილების მოდიფიკაციას.

თქვენ შეიძლება დაკარგოთ რედაქტირებული boards.txt ფაილი თუ ხელახლა დააინსტალირებთ ან განაახლებთ Arduino IDE- ს (ამ პოსტის მიხედვით). ეს ნიშნავს, რომ თუ განაახლეთ Arduino IDE, თქვენ კვლავ უნდა შეცვალოთ ეს პარამეტრები, თუ გსურთ შექმნათ ერთი და იგივე დამოუკიდებელი Arduino.

Boards.txt ფაილში გადაახვიეთ ქვემოთ ან მოძებნეთ "Pro Mini". განყოფილება სათაურია "pro.name = Arduino Pro or Pro Mini". გადაახვიეთ ქვეგანყოფილებაზე "pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 MHz)".

მოძებნეთ ხაზი, რომელიც ამბობს "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"

შეცვალეთ პარამეტრები xFE– ზე. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

Შენახვა და გამოსვლა.

ჩატვირთვის ჩამტვირთავი

მას შემდეგ რაც ამას გააკეთებთ, შეგიძლიათ მიჰყევით ISP სახელმძღვანელოს "ინსტრუქციებს" განყოფილებას 1 -დან 5 -მდე ნაბიჯებიდან.

ზოგიერთი რამ გასარკვევია:

  • როდესაც ატვირთავთ "Arduino როგორც ISP" ესკიზს, თქვენ უნდა დარწმუნდეთ, რომ თქვენ გაქვთ შერჩეული სწორი COM პორტი და პროცესორი.

    ამ შემთხვევაში, ეს ნიშნავს, რომ თქვენ შეარჩიეთ თქვენი Arduino– ს COM პორტი Tools-> Port: COM X (Arduino Uno) და დაფა არის Arduio Uno

  • აირჩიეთ სწორი პროგრამისტი: Tools-> Programmer-> Arduino როგორც ISP.

    არა ArduinoISP ან ArduinoISP.org

  • ჩატვირთვის ჩამწერამდე, შეცვალეთ დაფა "Pro or Pro Mini" და პროცესორი "ATMEGA328p (3.3V, 8 MHz)".

    თქვენ ვერ ნახავთ პროცესორის განყოფილებას, სანამ არ აირჩევთ დაფის სწორ ტიპს

დაწვით ჩამტვირთავი დამოუკიდებელ არდუინოზე, სანამ არ შეეცდებით მასზე ესკიზების დაწერას.

ესკიზის ატვირთვა

ეს ძალიან მნიშვნელოვანია. ახლა თქვენ შეგიძლიათ დაპროგრამოთ არც Arduino: Uno და Standalone. თუ არ ატვირთავთ სწორ მოწყობილობას, თქვენ უნდა გაიმეოროთ ზემოთ მოყვანილი ნაწილი და გადაწეროთ Arduino როგორც პროვაიდერის პროგრამა Uno– ზე.

როდესაც ესკიზს ატვირთავთ, დარწმუნდით, რომ დააწკაპუნებთ ინსტრუმენტებზე -> ატვირთვა პროგრამისტის გამოყენებით ან დააწკაპუნეთ Ctrl+Shift+U. თქვენ ასევე შეგიძლიათ გეჭიროთ ცვლა და დააწკაპუნოთ ისრის ხატულაზე, მაგრამ არ დააჭიროთ ისრის ხატს ცვლის დაჭერის გარეშე.

პრობლემების მოგვარების საერთო რჩევები

  • პრობლემების აღმოსაფხვრელად ჩართეთ სიტყვიერი გამომავალი.
  • "მოწყობილობის ხელმომწერი არის ყველა 0!" [ეს ძალიან სავარაუდოა, რომ მოხდეს.]

    • იხილეთ ISP გაყვანილობის განყოფილება. ან არასწორად შეაერთეთ დამოუკიდებელი არდუინო, ან ის არ არის ჩართული.
    • დარწმუნდით, რომ თქვენ შეარჩიეთ სწორი COM პორტი და დაფა / პროცესორი. ჩამტვირთავი მოწყობილობის დაწვისას, თქვენ უნდა დარწმუნდეთ, რომ მასზე წვავთ Pro Mini 3.3V 8 MHz ჩამტვირთველს, ან დაუკრავენ სწორად დაყენებას.
  • "მე შევცვალე boards.txt ფაილი, მაგრამ ცვლილებები არ ჩანს"

    დარწმუნდით, რომ თქვენ შეაკეთეთ სწორი boards.txt ფაილი. სცადეთ განაახლოთ Arduino IDE, თუ ცვლილებები არ მუშაობს, ან დროებით წაშალეთ სხვა საქაღალდეები თქვენს / აპარატურაში / საქაღალდეში

  • "მე ვერ ვპოულობ boards.txt- ის პრო მინი განყოფილებას!"

    თქვენ არ ეძებთ სწორ boards.txt ფაილს. შეამოწმეთ Arduino // ტექნიკა/arduino/საქაღალდე

ნაბიჯი 4: სერიული კომუნიკაცია

4) დამოუკიდებელი მოწყობილობის მონიტორინგი სერიული კომუნიკაციის საშუალებით

თქვენ ნამდვილად შეგიძლიათ ამის გაკეთება 2 მეთოდის გამოყენებით, ასე რომ, თუ თქვენ არ გაქვთ FTDI კაბელი / გარღვევის დაფა, ეს არ არის სამყაროს დასასრული. და დაიმახსოვრეთ, ესკიზს, რომელიც თქვენ ატვირთეთ დამოუკიდებელ არდუინოში, უნდა გქონდეთ Serial.print განცხადებები, რომ წაიკითხოთ: თუ არ ჩაწერეთ პროგრამაში, ვერაფერს ნახავთ!

თუ არ გაქვთ FTDI კაბელი

მას შემდეგ რაც ჩაწერთ ჩამტვირთველს და დაწერთ თქვენთვის სასურველ პროგრამას, შეგიძლიათ (ძალიან ფრთხილად და დაიმახსოვროთ რომელი ორიენტაციით ბრუნდება უკან) ამოიღოთ ATMEGA328 DIP ჩიპი Arduino Uno– დან. მე გირჩევთ გამოიყენოთ ბრტყელი თავი ამისათვის.

თქვენ შეგიძლიათ დაუკავშიროთ დამოუკიდებელი Arduino's RX Uno's RX– ს და TX– ს TX– ს. დიახ, ეს ჩვეულებრივ საპირისპიროა, მაგრამ თქვენ შეგიძლიათ იფიქროთ, რომ Uno არის ინფორმაციის "გადაგზავნა" IDE სერიულ მონიტორზე. ამიტომაც არ უკავშირებთ RX– ს TX– ს და TX ro RX– ს ამ შემთხვევაში. როდესაც თქვენ აწარმოებთ თქვენს პროგრამას, დარწმუნდით, რომ გაქვთ Arduino Uno– ს COM პორტი და გახსენით სერიული მონიტორი. თქვენ გექნებათ საშუალება ნახოთ დამოუკიდებელი არდუინოს სერიული გამომავალი.

(ეს გამოსავალი მიენიჭება Robin2– ს აქ.)

თუ თქვენ გაქვთ FTDI კაბელი / დაფა

(მე ვიყენებ Sparkfun– ის FTDI დაფას, რომელიც მე გადავიყვანე 3.3V– ზე, უკანა ნაწილზე solder pad– ის გამოყენებით)

უბრალოდ დააკავშირეთ ბრეაკოუტ დაფის GND დამოუკიდებელ არდუინოს მიწასთან და დააკავშირეთ ბრეაკოუტბორდის RX არდუინოს TX- თან და TX RX- თან. (თუ თქვენ მხოლოდ სერიული მონიტორინგი ხართ და არაფერს წერთ უკან, შეგიძლიათ უბრალოდ დააკავშიროთ პურის დაფის RX Arduino TX– თან).

გაითვალისწინეთ, რომ ამ ეტაპზე თქვენ გაქვთ შესაძლებლობა ჩართოთ დამოუკიდებელი Arduino Uno ან FTDI კაბელის საშუალებით. ნუ დაუკავშირებთ ენერგიის ორივე წყაროს ერთდროულად! გაითვალისწინეთ, რომ თქვენ უნდა შეცვალოთ COM პორტი, რადგან ის განსხვავებული იქნება Arduino Uno COM პორტისგან.

პრობლემების მოგვარების საერთო რჩევები

  • "მე ვერაფერს ვხედავ!"

    • შეამოწმეთ გაქვთ თუ არა ჩართული სწორი COM პორტი.
    • შეამოწმეთ გაქვთ თუ არა უახლესი FTDI დრაივერი.
    • დარწმუნდით, რომ ნიადაგი დაკავშირებულია.
  • "მე მხოლოდ ვხედავ ნაგვის გამოშვებას სერიულ მონიტორზე!"

    • თქვენ იღებთ რაღაცას, რაც კარგი ნიშანია.
    • თუმცა, შეამოწმეთ FTDI დაფის ძაბვა.
    • დამოუკიდებელი Arduino გამოდის 3.3V თავის TX– ზე და FTDI დაფამ შეიძლება არ აიღოს ის, თუ ის ელოდება 5 ვ.
    • შეამოწმეთ ბოდის მაჩვენებელი.
    • დარწმუნდით, რომ მიწასთან არის დაკავშირებული და მხოლოდ ერთი კვების წყაროა დაკავშირებული! (ანუ არ ჩართოთ დამოუკიდებელი არდუინო Uno– დან და თქვენი FTDI დაფებიდან.

გირჩევთ: