Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Onderdelen en benodigdheden

OnderdeelAantal
Arduino UNO1
Microchip Technology ATtiny851
Elektrolytische decoupling condensator - 10uF/25V1
Jumper Draden M/M1

Over dit project

Ik werk aan een project waarvoor meerdere sensorgegevens op verschillende locaties uitgelezen moeten worden. Deze vereisen slechts een paar PWM-pinnen, dus het gebruik van meerdere Arduino Uno's zou duur en onnodig zijn. Ik besloot de ATtiny85-microcontroller te gebruiken in plaats van Arduino Uno-ontwikkelborden. De ATtiny85 is een goedkope en krachtige alternatief wanneer je niet te veel PWM-pinnen nodig hebt. Aangezien de ATtiny85 slechts een microcontroller is, hebben we een Arduino Uno nodig om hem te programmeren. In dit project leg ik uit hoe dat zit. Hieronder staat de pinconfiguratie van de ATtiny85 en de datasheet is te vinden hier.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Arduino Uno configureren als ISP (In-System Programming)

Om de ATtiny85 te programmeren, moeten we de Arduino Uno eerst in ISP-modus zetten. Sluit je Arduino Uno aan op de PC. Open de Arduino IDE en open het ArduinoISP-voorbeeldbestand (Bestand -> Voorbeelden -> ArduinoISP) en upload het.

ATtiny85-ondersteuning toevoegen aan Arduino IDE

Standaard ondersteunt de Arduino IDE de ATtiny85 niet, dus we moeten ATtiny-boards toevoegen aan de Arduino IDE. Open Bestand -> Voorkeuren en vul bij "Additional Boards Manager URLs" deze URL in: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Na dit open je Tools -> Board -> Board Manager.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Scroll in de Board Manager naar beneden naar "attiny by Davis A. Mellis". Klik erop en installeer het.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Na installatie zie je een nieuwe entry in het Board-menu.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

ATtiny85 verbinden met Arduino Uno

Nu alles klaar is, beginnen we met programmeren van de ATtiny85. Verbind de Arduino Uno met de ATtiny85 op een breadboard als volgt:

  • Arduino 5V – ATtiny85 Vcc
  • Arduino GND – ATtiny85 GND
  • Arduino Pin 13 – ATtiny85 Pin 2
  • Arduino Pin 12 – ATtiny85 Pin 1
  • Arduino Pin 11 – ATtiny85 Pin 0
  • Arduino Pin 10 – ATtiny85 Reset
Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing
Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Plaats een 10uF condensator tussen RESET en GND op de Arduino. Dit voorkomt dat de Arduino automatisch reset wanneer we het programma naar de ATtiny85 uploaden. Als je een elektrolytische condensator gebruikt, zorg dan dat de anode in de GND van de Uno gaat.

Programma uploaden naar ATtiny85

Ga terug naar de Arduino IDE. Selecteer ATtiny onder Tools -> Board. Selecteer vervolgens ATtiny85 onder Tools -> Processor. En selecteer 8 MHz (internal) onder Tools -> Clock.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing
Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Zorg dat "Arduino as ISP" geselecteerd is onder Tools -> Programmer.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Standaard draait de ATtiny85 op 1MHz. Om hem op 8MHz te laten draaien, selecteer Tools -> Burn Bootloader.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing
Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Je ontvangt het bovenstaande bericht als het branden van de bootloader succesvol was.

Open nu het Blink-voorbeeld uit de Arduino-voorbeelden en wijzig het pinnummer van 13 naar 0 en upload.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing
Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Je ziet het bovenstaande bericht als alles succesvol was. Nu hebben we het blink-programma naar de ATtiny85 geüpload en kunnen we het testen.

ATtiny85 Blink testen

Nu is het tijd om te testen. Verwijder alle verbindingen van de Arduino en neem een voedingsbron. Hier gebruik ik een knoopcel om de ATtiny85 te voeden.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Daar is het: het blink-programma draait op een ATtiny85 met slechts een batterijcel als voeding. Je kunt veel projecten realiseren met lage kosten, laag verbruik en kleine afmetingen. Alleen je verbeelding (en het aantal PWM-pinnen) is de limiet.

Ombouwen tot een Shield

Ik heb het bovenstaande circuit omgebouwd tot een shield compatibel met Arduino Uno.

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing
Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing
Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing
Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing
Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

(Opmerking: Als softwareontwikkeler is dit mijn eerste elektronica-project. Geef gerust suggesties om me te helpen meer te doen.)

Code

Blink Programma

/* Blink 
Aan een LED voor één seconde, dan uit voor één seconde, herhaald. 
De meeste Arduinos hebben een on-board LED die je kunt besturen. 
Op de Uno en Leonardo is deze verbonden met digitale pin 13. 
Als je niet zeker weet welke pin de on-board LED is verbonden op je Arduino-model, 
check de documentatie op https://arduino.cc 
Deze voorbeeldcode is in het publieke domein. 
gewijzigd 8 mei 2014 door Scott Fitzgerald 
*/ 
// De setup-functie draait één keer wanneer je reset drukt of het bord voedt 
void setup() { 
  // initialiseer digitale pin 13 als output. 
  pinMode(0, OUTPUT); 
} 
// De loop-functie draait oneindig herhaald 
void loop() { 
  digitalWrite(0, HIGH); // zet de LED aan (HIGH is het spanningsniveau) 
  delay(1000); // wacht een seconde 
  digitalWrite(0, LOW); // zet de LED uit door de spanning laag te maken 
  delay(1000); // wacht een seconde 
} 

Schema's

Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing Efficiënt ATtiny85 programmeren met Arduino Uno: Goedkope Multi-Sensor Oplossing

Productieproces

  1. Bouw een Arduino Real-Time Clock voor Islamitische Gebedstijden
  2. Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
  3. Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
  4. Bouw een eenvoudige rekenmachine met Arduino UNO – Makkelijk project
  5. Afbeeldingen Weergeven op een 1,17-inch TFT LCD met Arduino UNO
  6. Een draagbaar Persistence-of-Vision-display bouwen met Arduino UNO en ATtiny85
  7. Een 8×8 LED-matrix beheersen met Arduino Uno: Stap-voor-stap handleiding
  8. Bouw een 4x4x4 LED-kubus met Arduino Uno & 1Sheeld – Interactief LED-project
  9. Accurate zonnestralingsmeting met Arduino UNO en Ethernet Shield
  10. 25 kHz 4-pins PWM-ventilatorbesturing met Arduino Uno – Bouw, Code & Test
  11. Python Extensieprogrammering met C: Snelle, Native Modules Bouwen