ATtiny 45 "Print Befehl auf Knopfdruck!"

Gast #4368034
Lesenswert?

Hallo Leute,

ich hab ne Frage und zwar ich würde gerne einen ATtiny45 so 
programmieren das er auf Knopfdruck eine Ausgabe(Text) über TX macht. 
Das ganze soll erst dann wieder aufhöhren wenn ich den Taster loslasse, 
bis dahin soll er solange den Befehl senden bis ich loslasse!

Könnte mir da bitte jemand helfen da ich in dem Bereich uC ein Neuling 
bin.

Den Software UART konnte ich einrichten aber wie binde ich den Befehl so 
ein das er beim drücken gesendet wird?

MfG Hans

[c]
#include <SoftwareSerial.h>
#  define rxPin 3
#  define txPin 4
  SoftwareSerial _bluetoothSerial = SoftwareSerial(rxPin, txPin);


void setup() {

  // initialize serial communications at 9600 bps:
  _bluetoothSerial.begin(9600);

  delay(100);
}


void loop() {
  _bluetoothSerial.println("Hello Zero Tiny!");

  // delay for 1 second
  delay(1000);
}
Gast #4368070
Lesenswert?

Also so?
1
#include <SoftwareSerial.h>
2
#  define rxPin 3
3
#  define txPin 4 // NOTE: pin 3 is equal to physical pin 2: see http://fc04.deviantart.net/fs70/f/2013/038/3/7/attiny_web_by_pighixxx-d5u4aur.png
4
  SoftwareSerial _bluetoothSerial = SoftwareSerial(rxPin, txPin);
5
#define BUTTON_PIN 7
6

7
void setup() {
8
 
9
  pinMode(BUTTON_PIN, INPUT)
10
  // initialize serial communications at 9600 bps:
11
  _bluetoothSerial.begin(9600); 
12

13
  delay(100); 
14
}
15

16

17
void loop() {
18
 while (BUTTON_PIN) {
19
  _bluetoothSerial.println("Hello Zero Tiny!");     
20

21
  // delay for 1 second
22
  delay(1000);  
23
}
Gast #4368104
Lesenswert?

das wird angezeigt!
1
sketch_oct29a.ino: In function 'void setup()':
2
sketch_oct29a.ino:22:3: error: expected ';' before '_bluetoothSerial'
3
sketch_oct29a.ino: At global scope:
4
sketch_oct29a.ino:29:2: error: expected initializer before 'while'
5
sketch_oct29a.ino:33:8: error: expected constructor, destructor, or type conversion before '(' token
6
sketch_oct29a.ino:34:1: error: expected declaration before '}' token
7
Fehler beim Kompilieren.
#4368106
Lesenswert?

asdf schrieb:
> Oder hält er etwa ein Schild hoch, auf dem nur steht "Fehler"?

Wieso? Das ist doch offensichtlich.
1
#define BUTTON_PIN 7
2
...
3
while (BUTTON_PIN)

Er sendet ohne Taste.

Hans85 schrieb:
> kannste mir es bitte bitte so machen das es funktioniert.

Da steht es doch:

Matthias S. schrieb:
> Du könntest in deine Arduino loop() einfach einewhile (Knopfdruck)
> {
>  bluetoothblabla...
>  }einbasteln.
> Den Knopfdruck wirst du wohl als DigitalInput(sowienoch) konfigurieren
> müssen, wimre.

mfg.
Gast #4368131
Lesenswert?

Also jetzt passt alles! Hoffe es funktioniert auch am Attiny.
Vielen Danke Leute!!
1
 */
2
// attiny85 uses software serial
3
#include <SoftwareSerial.h>
4
#  define rxPin 3
5
#  define txPin 4 // NOTE: pin 3 is equal to physical pin 2: see http://fc04.deviantart.net/fs70/f/2013/038/3/7/attiny_web_by_pighixxx-d5u4aur.png
6
  SoftwareSerial _bluetoothSerial = SoftwareSerial(rxPin, txPin);
7
#  define BUTTON_PIN 7
8

9
void setup() {
10
 
11
  pinMode(BUTTON_PIN, INPUT);
12
  // initialize serial communications at 9600 bps:
13
  _bluetoothSerial.begin(9600); 
14

15
  delay(100); 
16
}
17

18

19
void loop() {
20
  
21
  while (BUTTON_PIN) {
22
 _bluetoothSerial.println("Hello World!");     
23
}
24
  // delay for 1 second
25
  delay(1000);  
26
}
Persönliche Seite #4368145
Lesenswert?

Nein, das funktioniert nicht.

Das Ding sendet immer.

Obendrein hast Du eine Endlosschleife in loop() - die gehört da nicht 
hin.

Du willst jetzt herausfinden, wie man auf einem Arduino einen Eingang 
abfragt.

Derzeit rufst Du Deine print-Funktion auf, wenn der Wert 7 wahr ist. Da 
in C-artigen Sprachen jeder Wert als wahr angesehen wird, der nicht 0 
ist, ist das immer der Fall.
Gast #4368194
Lesenswert?

Könnte mir bitte jemand bei dem Code helfen und ihn so schreiben das 
erpasst? ich blick hier net durch und ich brauch nur den Code.

Danke Leute schonmal für die nett und freundlich Hilfe hier!!!!


mfg Hans
Gast #4368213
Lesenswert?

Hans85 schrieb:
> ich blick hier net durch und ich brauch nur den Code.

Rufus Τ. F. schrieb:
> Nein. So funktioniert das hier nicht.

Da packt mich die Wut.

Er braucht in seinem Leben wahrscheinlich nur dieses eine Programm 
-sonst Nichts und nie wieder. Da stellt sich der Herr Moderator hin und 
gibt den Oberlehrer. Kotz!

Leider kann ich mit der Arduino-Sprache und/oder C nicht um, sonst wäre 
es mir ein Fest gewesen.
Gast #4368224
Lesenswert?

Ich hab null Ahnung von dem Programmieren und brauch wirklich nur das 
eine Programm :)

Bis ich mich in die Materie eingelesen und verstanden habe bin ich alt 
und grau :)

Für die Profis is es doch mit sicherheit ein Kinderspiel! Währe euch 
sehr dankbar!!

mfg Hans
#4368268
Lesenswert?

Lass dich nicht veräppeln.

Wenn man sich damit nicht auskennt, woher soll man wissen was man in dem 
Beispiel an welcher Stelle ersetzen soll ?

while (digitalRead(BUTTON_PIN) == HIGH)
{
  ...
}

Allerdings wärst du wirklich durch eine kleine Internetrecherche bereits 
fertig.
Gast #4368282
Lesenswert?

Also So? ihr wisst noch das ich kein plan davon habe!

Ich frage mich wo es im internet was gibt welches nur ansatzweiße mit 
meinem Problem zu tun hat! Ich wollte euchg nicht belästigen mit meinen 
Fragen aber ich habe nix gefunden was mit Software UART, Taster und 
Print befehl ansatzweise zutun hat. Darum war meine letzte anlaufstelle 
hier bei euch!

1
#include <SoftwareSerial.h>
2
#  define rxPin 3
3
#  define txPin 4 
4
  SoftwareSerial _bluetoothSerial = SoftwareSerial(rxPin, txPin);
5
int taster=7;
6
int tasterstatus=0;
7

8
void setup() {
9
 
10
  pinMode(taster, INPUT);
11
  // initialize serial communications at 9600 bps:
12
  _bluetoothSerial.begin(9600); 
13

14
  delay(100); 
15
}
16

17

18
void loop() {
19
  
20
  while (digitalRead(taster) == HIGH)
21
{
22
  bluetoothSerial.println("Hello World!"); 
23

24
  // delay for 1 second
25
  delay(1000);  
26
}
Gast #4368321
Lesenswert?

Hans85 schrieb:
> Also So? ihr wisst noch das ich kein plan davon habe!

Warum greifst du dann zu einem Werkzeug, von dem du keinen Schimmer hast 
und zudem du auch nicht bereit bist, dir die Grundlagen anzueignen, die 
man beim Spielen mit den Beispielen normalerweise nach einem Nachmittag 
drauf hat?
Gast #4368402
Lesenswert?

spess53 schrieb:
> Ja, hast du oft genug betont.
>
> Aber warum willst du etwas machen, wovon du keine Ahnung hast?

Warum versuchst Du, zu antworten, wenn Du nicht helfen kannst?
Langeweile? Geltungsdrang?

Da gab es mal Einen, der ein Auto kaufte. Er konnte mühelos damit 
fahren, es aber nicht bis in's Kleinste durchschauen. Ja, das ist 
verwerflich! Leute, die nicht mindestens ein Maschinenbau-Diplom ihr 
Eigen nennen, sollten nur mit dem Holzroller fahren dürfen.
Gast #4368490
Lesenswert?

Rektal Invasiver schrieb:
> Da gab es mal Einen, der ein Auto kaufte. Er konnte mühelos damit
> fahren, es aber nicht bis in's Kleinste durchschauen. Ja, das ist
> verwerflich!

Hier in diesem Fall geht es aber gar nicht darum, dass jemand mit dem 
Auto fahren will. Er will sich ein Auto selber bauen, obwohl er es nicht 
kann. Dieser Vergleich passt viel besser, stimmts?
Gast #4368521
Lesenswert?

Rektal Invasiver schrieb:
> Warum versuchst Du, zu antworten, wenn Du nicht helfen kannst?
> Langeweile? Geltungsdrang?

Nach aufmerksamen lesen deiner Beiträge sehe ich, dass du genau das 
tust, worüber du dich aufregst.
Keinerlei Hilfe für unseren Hans85.

Wie war das noch gleich, mit dem Splitter im Auge des anderen und dem 
Balken vor dem eigenen Schädel?
;-)

PS:
Kann den Widerstand gut verstehen....
Ich helfe auch nur lernwilligen.
Fässer ohne Boden werden nicht gefüllt.
#4368546
Lesenswert?

Hans85 schrieb:
> wie lange dauert das?

Hans, Rufus hat dir zwei Beiträge höher doch schon den genauen Code 
gepostet. Brauchst du nur kopieren und nebenbei ist der schon fertig in 
der Arduino IDE. Unter den Beispielen findest du den.
Ist schon ein bisschen her, seit ich zum letzten Mal die Arduino IDE 
benutzt habe, aber das dürfte sich nicht geändert haben.
(Firma: matzetronics) #4368550
Lesenswert?

Stefan U. schrieb:
> Übrigens hat der ATtiny45 ein serielles Interfaces.  Kann Arduino das
> etwa nicht nutzen?

Asynchrones UART übers Tiny25/45/85 USI ist schon etwas komplizierter. 
Das Datenblatt verspricht zwar, das es etwas einfacher ist, als es 
komplett in Software zu machen, aber die Soft-UART ist ja beim Arduino 
SDK schon dabei (und läuft beim TE ja auch schon).
Gast #4368583
Lesenswert?

Ich hab noch per Email Kontakt zum TO. Inzwischen hat er weitere 
Anforderungen an das Programm genannt. Ich fasse mal zusammen:

- Am µC sind zwei Taster angeschlossen
- Und ein Bluetooth Modul HM-10 BLE
- Ein Taster löst das Pairing zum Empfänger aus
- Der andere Taster sendet einen Befehl an den Empfänger, um dort einen 
Ausgang auf High zu schalten
- Der Sender soll mit einer CR2032 Batterie betrieben werden- daraus 
ergeben sich weitere Anforderungen zur Energieverwaltung

Was noch fehlt:

- Schaltplan
- Gewünschte Bitrate
- Nennung der Befehle und wie sie terminiert werden
- Timing zwischen den Befehlen
- Fehlerbehandlung
- Konfiguration des Pairings
- Genaue Anforderungen an die Energieverwaltung
- Vermutlich fehlt ein Taster oder Timer, der den Ausgang am Empfänger 
zurück auf Low setzt.
- Fehlererkennung unf Fehlerbehandlung (z.B. wenn das Pairing 
fehlschlägt)
- Bereitstellung eines Prototypen (Hardware) - denn Debugging per Email 
oder Diskussionsforum scheint mir nicht ratsam.

Dass es mit 20 Euro nicht getan ist, habe ich ihm gerade geschrieben. 
Aber vielleicht hat ja hier jemand Lust, das Projekt kostenlos 
fortzuführen. Kommt ja gelegentlich vor. Ich helfe auch manchmal einfach 
aus Spaß an der Herausforderung - heute allerdings nicht.

> Für die Profis is es doch mit sicherheit ein Kinderspiel!

Ganz Recht, aber erst, wenn die Anforderungen sauber formuliert sind und 
nachdem die Machbarkeit geklärt ist.
#4369086
Lesenswert?

Rufus Τ. F. schrieb:
> Indem man liest und vergleicht.
>
> Da stehen Kommentare, da ist ausführlichst beschrieben, wie so eine
> Tasterauswertung funktioniert.

Ja das ist klar. Aber wenn man komplett neu ist in dieser Welt, und man 
erstmal ein Ergebnis sehen möchte das zeigt das es voran geht benötigt 
man eben schnelle Hilfe ohne sich vorher zwei drei Wochen mit der 
Materie auseinander zu setzen. Dafür gibt es doch solche Module.

Was wirklich nervt ist diese ständige herumnörgelei, das schlecht machen 
anderer um sich selber auf ein Podest zu stellen.

Rufus Τ. F. schrieb:
> Das hat nichts mit "veräppeln" zu tun.

Das bezog sich übrigens auf die bezahlte Hilfe, da der Beitragsersteller 
darauf angesprungen ist. Ich war ein wenig schreibfaul, Samstagabend...
Persönliche Seite #4369107
Lesenswert?

Holger L. schrieb:
> Aber wenn man komplett neu ist in dieser Welt, und man erstmal ein
> Ergebnis sehen möchte das zeigt das es voran geht

Dann arbeitet man so ein Tutorial durch, wie das, was ich verlinkt habe. 
Dafür braucht man keine "zwei drei Wochen", das ist an einem Nachmittag 
erledigt - das mit dem Taster ist schließlich schon der fünfte Schritt.
Gast #4369114
Lesenswert?

Rufus Τ. F. schrieb:
> Dann arbeitet man so ein Tutorial durch, wie das, was ich verlinkt habe.
> Dafür braucht man keine "zwei drei Wochen", das ist an einem Nachmittag
> erledigt

Richtig. Hier sind solche Könner am Werk, die sich sogar ein Studium 
sparen könnten:
Da arbeitet man mal schnell ein Tutorial durch und ist wahlweise 
Informatiker oder E-Techniker -an einem Nachmittag.

Pass nur auf, daß Dir die Arroganz nicht die Hemdknöpfe über der 
geschwellten Brust wegreißt!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren