Aktuelle Zeit: 17.11.2019 17:47

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: RGB-LED ansteuern und/oder ICs programmieren
BeitragVerfasst: 04.03.2014 19:52 
Offline
Benutzeravatar

Registriert: 30.01.2013 16:11
Heyho,

Ich habe schon seit Längerem vor, mit PB mal was Hardwaremäßiges anzustellen.
Für den Anfang würde mir schon reichen, eine RGB-LED anzusteuern.
Da ich auf diesem Gebiet keinerlei Erfahrung besitze, wollte ich mich mal an euch wenden. Kennt jemand von euch Tutorials, die dieses Thema behandeln?

Damit das Ganze auch ohne PC lauffähig ist, würde ich gerne ICs programmieren (Falls man die schon im ersten Teil braucht, einfach nicht beachten). Ich habe da noch 2 Atmega bla rumliegen und würde diese gerne benutzen, am Liebsten natürlich mit PB. Kann man IC-Programme mit PB schreiben?
Ich habe mir die Handbücher zu den ICs angeschaut, leider steht da nichts drin, außer dem Programmieren mit Assembler. Irgendwie kann man die auch mit C+ programmieren, wieso den dann auch nicht mit PB (Oder müsste man sich da so einen Wrapper programmieren?!)

Cheers, haut in die Tasten,

Chimorin

_________________
Bild

- formerly known as Bananenfreak -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RGB-LED ansteuern und/oder ICs programmieren
BeitragVerfasst: 04.03.2014 20:15 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Mit PB kannst du keine AVRs programmieren. Mit PB kann man nur für Windows, Linux und MacOS programmieren.
Am einfachsten kannst du AVRs mit C, C++ oder Bascom installieren. Dafür lädst du dir das AVR Studio herunter und legst los. Vorher brauchst du natürlich noch einen Programmieradapter und eine entsprechende Schaltung oder gleich ein fertiges Entwicklerboard für deinen Atmega. Ich programmiere die Dinger jetzt schon mehrere Jahre lang und kann dir theoretisch helfen. Aber für die Anfänge reicht es auch, einfach mal bei mikrocontroller.net rein zu klicken und sich die entsprechenden Beiträge im Wiki durchzulesen.
Wenn du eine reine RGB-LED hast, dann brauchst du auch ein passende Strombegrenzer-Schaltung oder einfache Widerstände, wenn du eine feste Spannung hast. Die PWM um die Helligkeit zu steuern kannst du vom Atmega selbst generieren lassen. Möchtest du mehr als eine RGB-LED ansteuern, dann empfiehlt sich ein externer PWM-Controller, der auch gleich noch den Strom steuert. Ich nutze dafür z.B. den WS2803.

Wenn du jetzt den Atmega mit PB steuern willst, gibt es zwei Möglichkeiten. Die einfachste ist über einen COM-Port. Die komplizierte über USB. Und die geht auch nur mit bestimmten Atmegas. Einfacher wird es dann mit der XMEGA-AU-Reihe. Aber bis du dahin kommst, solltest du lieber erst mal die Grundlagen lernen. Da findest du auch ausreichend Material im Netz.

_________________
Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 19.04 LTS x64, PureBasic 5.71 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RGB-LED ansteuern und/oder ICs programmieren
BeitragVerfasst: 04.03.2014 20:55 
Offline
Benutzeravatar

Registriert: 30.01.2013 16:11
Cool, danke für deine Antwort. Ich werde mir jetzt erst einmal das Wiki zu Gemúte führen und dann weitersehen.

Ein ganzes Entwicklerboard wäre dann sowas wie ein Arduinoboard? Oder gibt es da was, wo man nur noch die ICs reinstecken muss? Einerseits wäre das gut, andererseits... wenn ich nicht mal den Zusammenbau der Programmierschaltung verstehe, sollte ich gar nicht erst anfangen.

Auf dem Gebiet Elektrotechnik bin ich ein bisschen bewandert ( Technisches Gymnasium), das wird wohl für den Anfang reichen.

EDIT: Günstig sieht das ja nicht aus. Naja, mal sehen. Ein Arduino für 16Euro ist da unschlagbar, aber leider kann man die ICs ja nicht rausnehmen.

_________________
Bild

- formerly known as Bananenfreak -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RGB-LED ansteuern und/oder ICs programmieren
BeitragVerfasst: 07.03.2014 02:03 
Offline
Benutzeravatar

Registriert: 22.05.2013 20:35
Wohnort: nahe Wolfsburg
Ich weiß jetzt nicht wie fit du allgemein in ICs bist, aber Arduino-Boards sind sehr anfängerfreundlich.
Wenn du Arduino-Boards oder noch besser günstige "kompatible"-Boards suchst, dann kann ich die "Komputer.de" enpfehlen. Die ICs kannst du je nach Arduino-Board auch tauschen. Allerdings benötigen diese ICs einen speziellen Bootloader, den du dann erstmal brennen müsstest. Wenn du dir ein Board kaufst, dann ist es in der Regel überflüssig. ...und bei ca. 18 € pro Board kann man nichts verkehrt machen. (nimm Notfalls ein "Arduino Uno Rev3"; es ist zuverlässig und für Anfänger gut geeignet; ca. 25€)

Der Vorteil von Arduino ist an sich schon die Programmierung. Die Programmiersprache ist C und sehr stark für Anfänger vereinfacht.
z.B.:

Code:
int led = 13; //LED am digitalen I/O-Port 13

// diese Funktion wird einmalig beim Starten des Arduinos ausgeführt
void setup() {               
  pinMode(led, OUTPUT); // I/O-Port 13 soll ein Ausgang sein
}


// diese Funktion wird nach Ablauf immer erneut ausgeführt (eine Schleife wie 'Repeat: ForEver' in PureBasic)
void loop() {
  digitalWrite(led, HIGH);   // LED anschalten
  delay(1000);               // 1 sek warten
  digitalWrite(led, LOW);    //  LED ausschalten
  delay(1000);               // 1 sek warten
}


Die IDE-Software gibt es bei Arduino.cc kostenlos.

....und mit AVR Studio wäre dieser Code etwas* komplizierter.

Die Programmierung geht bequem über USB-Kabel und ermöglicht auch eine serielle COM-Verbindung.

Ich habe schon oft PureBasic-Programme mit dem Arduino gekoppelt um damit Steuerungen zu realisieren. Ich denke ich könnte dir da weiterhelfen, wenn bedarf besteht. Am einfachsten geht es dann über eine serielle Verbindung (COM).

Ich programmiere zur Zeit eine Oszilloskop-Software mit PureBasic für den Arduino. Damit kann man immerhin Signale bis 20KHz messen :D



* "etwas" in Form von: ...ohne AVR-Handbuch weint man sich in den Schlaf und will nie wieder aufwachen. Da denke ich immer an die Programmiersprache "Brainfuck" ;)

viele Grüße,
SBond

_________________
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RGB-LED ansteuern und/oder ICs programmieren
BeitragVerfasst: 07.03.2014 10:20 
Offline
Benutzeravatar

Registriert: 30.01.2013 16:11
Hey SBond,
danke für die Antwort. Das sieht doch schon mal toll aus.

Was mich eigentlich direkt davon abhält, ICs richtig zu programmieren, ist Assembler. Ich weiß nicht, in wie weit das noch zunimmt, aber
Code:
.include "m8def.inc"         ; Definitionsdatei für den Prozessortyp einbinden
 
         ldi r16, 0xFF       ; lade Arbeitsregister r16 mit der Konstanten 0xFF
         out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB ausgeben
 
         ldi r16, 0b11111100 ; 0b11111100 in r16 laden
         out PORTB, r16      ; r16 ins IO-Register PORTB ausgeben
 
ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife

geht noch vom Aufwand her. Aber wenn das noch mehr werden sollte Oo
Wie findet man da denn überhaupt einen Fehler in einem Code mit ein paar Hundert ldi, out, in und den ganzen r´s?

Danke an euch Beide für die Hilfe, ich werde mir das dann mal überlegen (Die Preise an sich sind nicht zu hoch, eher ist der Schnupperpreis mit 80€ für so ein STK500 stolz) und eventuell dann in den nächsten Semesterferien (Sommerferien) loslegen.

_________________
Bild

- formerly known as Bananenfreak -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RGB-LED ansteuern und/oder ICs programmieren
BeitragVerfasst: 07.03.2014 12:26 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Du musst gar nichts in ASM programmieren. Du kannst dafür z.B. schönen C-Code nehmen.

Für Atmegas sieht der Code dann in etwa so aus:
Code:
#include <avr/io.h>
#include <util/timer.h>

;Datenrichtungsregister für PORT A
#define LED_DIR  DDRA

;PORT A selbst
#define LED_PORT PORTA

;Pin für die LED an PORT A
#define LED_PIN  3

void main(int argc, char **argv) {
   ;Datenrichtung an PORT A und PIN 3 als Ausgang setzen   
   LED_DIR = _BV(LED_PIN)
   
   while (1) {
      ;LED anschalten und dabei alle anderen Bits unverändert lassen
      LED_PORT |= _BV(LED_PIN)
      ;1000 ms warten
      _delay_ms(1000)
      ;LED ausschalten und dabei alle anderen Bits unverändert lassen
      LED_PORT &= ~_BV(LED_PIN)
      ;1000 ms warten
      _delay_ms(1000)
   }
}


Für ATXMega wäre der äquivalente Code dann:
Code:
#include <avr/io.h>
#include <util/timer.h>

;PORT A
#define LED_PORT PORTA

;Pin für die LED an PORT A
#define LED_PIN  3

void main(int argc, char **argv) {
   ;Datenrichtung an PORT A und PIN 3 als Ausgang setzen   
   LED_PORT.DIRSET = _BV(LED_PIN)
   
   while (1) {
      ;LED anschalten und dabei alle anderen Bits unverändert lassen
      LED_PORT.OUTSET = _BV(LED_PIN)
      ;1000 ms warten
      _delay_ms(1000)
      ;LED ausschalten und dabei alle anderen Bits unverändert lassen
      LED_PORT.OUTCLR = _BV(LED_PIN)
      ;1000 ms warten
      _delay_ms(1000)
   }
}

Dann gibt es noch jede Menge Libraries, die bestimmte Funktionalitäten bieten um leichter damit programmieren zu können.

_________________
Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 19.04 LTS x64, PureBasic 5.71 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RGB-LED ansteuern und/oder ICs programmieren
BeitragVerfasst: 07.03.2014 13:29 
Offline
Benutzeravatar

Registriert: 30.01.2013 16:11
Ich denke, dass es am Anfang mit Assembler doch einfacher ist (So wie das aussieht, ist der Teil mit LED an, warten und wieder aus so ziemlich identisch).
Geht es aber an Multiplikation, Division und solche Sachen, ist Assembler wohl nicht die richtige Wahl :D

_________________
Bild

- formerly known as Bananenfreak -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RGB-LED ansteuern und/oder ICs programmieren
BeitragVerfasst: 07.03.2014 17:10 
Offline
Benutzeravatar

Registriert: 22.05.2013 20:35
Wohnort: nahe Wolfsburg
...also ASM ist ja nun gar nicht anfängerfreundlich :D. Bevor ich damit anfange, spiele ich mit Barbie-Puppen :mrgreen:

nimm C ;)

_________________
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye