Show Posts
Pages: 1 2 [3] 4 5 ... 7
31  International / Deutsch / Re: Tiny85->Duemilanove->I2C brauche Denkanstoß!!! on: October 16, 2012, 09:10:18 am
@ pylon

Leider habe ich deine Antwort nicht gesehen. Sollte wahrscheinlich öfter mal auf Reload drücken. Hatte den Tab noch offen

Jetzt wo du es sagst.... dort steht was von onRequest.

Werde mir das näher ansehen.    Aber warum steht dann in der Beschreibung

"TODO:   (by others!)
   - onReceive and onRequest handlers are not implimented.
   - merge this class with TinyWireM for master & slave support in one library"


Danke ich werde dann mal weiter versuchen. Und melde mich ganz bestimmt bald wieder


Da stellt sich gleich noch ne Frage....

Wenn ich nun einen Slave erstelle also meinen Tiny der wirklich nur den wert einer Variable übergeben soll. muss ich da mit registern arbeiten? bzw wie würde ich das überhaupt anstellen?  Gibts da evtl ne gute Anleitung?


Gruß derRobert
 
32  International / Deutsch / Re: Tiny85->Duemilanove->I2C brauche Denkanstoß!!! on: October 15, 2012, 02:37:12 pm
Keiner ne Idee? oder ist diese Frage keiner Antwort würdig???
33  International / Deutsch / Re: Tiny85->Duemilanove->I2C brauche Denkanstoß!!! on: October 14, 2012, 04:44:36 am
Ich habe hier noch mal einen Schaltplan gemalt um zu Zeigen wie ich das ganze verkabelt habe.



Das sollte für den Master doch funktionieren oder?   
(Ist ja aus einem Beispiel)

Code:
#include <Wire.h>

void setup()
{
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
}

void loop()
{
  Wire.requestFrom(0x26, 6);    // request 6 bytes from slave device 0x26

  while(Wire.available())    // slave may send less than requested
  {
    char c = Wire.read(); // receive a byte as character
    Serial.print(c);         // print the character
  }

  delay(500);
}

Aber wie mache ich es jetzt das der Slave sich angesprochen fühlt und dann auch was sendet?

Gruß derRobert
34  International / Deutsch / Re: Tiny85->Duemilanove->I2C brauche Denkanstoß!!! on: October 13, 2012, 12:28:20 pm
Ich habe jetzt noch einmal in der Library für den Tiny gestöbert und festgestellt das es keinen onRequest Handler gibt. Aber das wäre doch eigentlich der korrekte weg oder?

Master (Duemilanove) sendet Request an Slave(Tiny) und Tiny sendet dann was er soll und der Master empfängt mittels  while(Wire.available())   


Wie bewerkstellige ich das jetzt ohne die onRequestfunktion?????

Danke und Gruß
derRobert
35  International / Deutsch / Re: Relais Stört DS18B20 kommunikation? on: October 13, 2012, 10:55:40 am
Eventuell könnten die Störungen behoben werden wenn man die Relaiskarten gegen Triacs  oder Solid State Relais tauscht.
Oder Ihr versucht es mal damit http://de.wikipedia.org/wiki/Snubber

Das ist nur das was mir da als erstes Eingefallen ist. Erfahrung in der Praktischen Umsetzung habe ich da leider keine. Aber evtl hilft ja um in die richtige Richtung zu Denken.

Gruß derRobert
36  International / Deutsch / Tiny85->Duemilanove->I2C brauche Denkanstoß!!! on: October 13, 2012, 10:25:00 am
Hallo@all,
Ich bin hier schon seit 2 Tagen drann mit I2C zu spielen und verzweifle bald.

Ich möchte von einem Tiny85 Daten erhalten und Blick hier einfach nicht durch.

Der Tiny soll als Infrarot empfänger immer dann den Tastenwert an den Duemilanove schicken wenn er sich ändert.

Für den Tiny habe ich folgende Library gefunden https://github.com/rambo/TinyWire

und am Duemilanove nehm ich Wire.h

Aber ich bekomme es nichteinmal hin das ich einfach nur einen Zahl vom Tiny anfordern kann.

Irgendwo fehlt mir hier der Einstieg.  Aus den Beispielen werde ich auch nicht schlau.

Mir würde es schon mal reichen wenn der tiny alle 5 sekunden einen Wert von "1234" schickt und der Duemilanove den dann in ne Variable packt.

Hat jemand von euch schon einen Tiny als I2C Slave verwendet und so Abgefragt?

Danke und Gruß derRobert
37  International / Deutsch / Re: Attiny85 Geschwindigkeitsproblem? on: October 03, 2012, 02:37:06 pm
Klingt interessant.
hab mit Funktionen noch nicht so viel gearbeitet.
habe jetzt folgenden Ansatz zur Lösung umgesetzt.

Den Serial Kram habe ich nach Funktionsprüfung auskommentiert und komme somit auf
Code:
Binäre Sketchgröße: 1.346 Bytes (von einem Maximum von 8.192 Bytes)

Code:
//#include <SoftwareSerial.h>
//#define rxPin 3
//#define txPin 4
//SoftwareSerial serial(rxPin, txPin);

int timestamp = 0;

void setup(){
  pinMode(2,INPUT);
  pinMode(0,OUTPUT);
  digitalWrite (0, LOW);
 // serial.begin(4800);
}

void loop(){
timestamp= pulseIn(2,LOW)/100;
// serial.println(timestamp2);
 
if (timestamp>194){//serial.println("up");
rc1();}
if (timestamp<189 && timestamp>170){//serial.println("down");
rc2();}
}

void rc1()
{
  digitalWrite(0, HIGH);
  delay(300);
  digitalWrite(0, LOW);
}

void rc2()
{
  digitalWrite(0, HIGH);
  delay(3000);
  digitalWrite(0, LOW);
}

Das mit der Funktion werde ich mir mal anschauen.
Nicht weil es mir um die zu sparenden Byte´s geht sondern um zu Lernen.

Danke und Gruß
derRobert
38  International / Deutsch / Re: Attiny85 Geschwindigkeitsproblem? on: October 03, 2012, 01:41:15 pm
Weis nicht was mit rc short delay gemeint ist?


wollte gerade das "case dauer >190 AND <195" umsetzen   aber beim kompilieren meckert er wegen des < und des >

Wie ist denn da die korrekte syntax bzw kann switch case überhaupt vergleichen????

oder muss ich 2 if´s nehmen?


Gruß derRobert
39  International / Deutsch / Re: Attiny85 Geschwindigkeitsproblem? on: October 01, 2012, 01:21:57 pm
rc1 schaltet Ein ->Kurzer impuls delay(300)
und
rc2 schaltet aus mit langem impuls delay(3000)

Bei betätigung der Fernbedienung bekomme ich einen festen wert und daher ging das so.
Natürlich kann man da ein größeres fenster geben. Jetzt isses aber schon gelötet und in schrumpfschlauch verpackt.

wenns probleme damit gibt werd ich ma die ISP strippen anlöten und das noch ändern.

Gruß derRobert
40  International / Deutsch / Re: Attiny85 Geschwindigkeitsproblem? on: September 30, 2012, 11:15:40 am
So Problem gelöst.

Code ist sogar kleiner geworden und er sendet trotzdem Munter und fröhlich seine Seriellen Daten und die Delays durften auch bleiben.

Warum selber zählen wenn da schon jemand eine Funktion erstellt hat?  pulseIn() war hier das Zauberwort

Code:
#include <SoftwareSerial.h>
#define rxPin 3
#define txPin 4
SoftwareSerial serial(rxPin, txPin);

unsigned long timestamp2 = 0;
int timestamp3 = 0;



void setup(){

  pinMode(2,INPUT);
  pinMode(0,OUTPUT);
  digitalWrite (0, LOW);
   serial.begin(4800);
}


void loop(){

timestamp3= pulseIn(2,LOW);
timestamp2= timestamp3 / 100;
 serial.println(timestamp2);
 



  switch (timestamp2){
  case 193:
  rc1();
    break;
  case 185:
    rc2();
    break;
  }


}
void rc1()
{
  digitalWrite(0, HIGH);
  delay(300);
  digitalWrite(0, LOW);
 
}

void rc2()
{
  digitalWrite(0, HIGH);
  delay(3000);
  digitalWrite(0, LOW);
 
}


Binäre Sketchgröße: 3.686 Bytes (von einem Maximum von 8.192 Bytes)
Könnte man echt drüber nachdenken den tiny45 zu nehmen smiley-wink
41  International / Deutsch / Re: Attiny85 Geschwindigkeitsproblem? on: September 30, 2012, 09:01:58 am
Zu den delays kommt er je erst wenn er mal die micros() gezählt hat. dann soll er eine Funktion durchlaufen und dann wieder zurück in die Loop dort gibts ja dann keine delays.

das serial habe ich ja erst wieder rein genommen als keine reaktion vom tiny kam. also musste ich ja schauen welchen wert die variable annimmt. Wüsste nicht wie ich den sonst herausbekomme


Habe vorm ersten beschreiben den Tiny85 8Mhz intern als Board ausgewählt und mit der Funktion  "TOOLS/Bootloader installieren" eingestellt.

Das sollte doch so korrekt sein und den Tiny auf 8Mhz intern gestellt haben

42  International / Deutsch / Attiny85 Geschwindigkeitsproblem? on: September 30, 2012, 07:51:38 am
Hallo @ all,

Ich habe folgendes Vorhaben:

Mit einer Funkfernsteuerung (Hype ST6DF) möchte ich eine Kamera ein und aus schalten. Der Empfänger der Steuerung gibt aber nur ein PWM Signal aus.

Der einfachheit halber habe ich mir das PWM in beiden Endlagen des Steuerknüppels und in Nullstellung angeschaut.

_____----_____----_____usw.    HIGH = 2ms    Hebel oben
_____---______---______usw.   HIGH = 1,5ms Hebel mitte
_____--_______--______usw.    HIGH = 1ms    Hebel unten

Da die HIGH momente sehr Kurz sind habe ich mich entschlossen die LOW momente an zu schauen 18ms, 18,5ms, 19ms

Jetzt habe ich mit dem Mega angefangen und getestet.
Ging alles Problemlos. Per Serial.print Kamen saubere Werte über die Leitung und die Kamera lies sich auch bedienen.

Also habe ich das Programm soweit an den Attiny85 angepasst und es per ArduinoISP rüber geschaufelt.

Jetzt ging garnix mehr. also hab ich dem Tiny ne softserial verpasst und mir die Werte angeschaut. Leider schwanken die jetzt so dermaßen das der komplette Bereich bei jeder Hebelstellung abgedekt wird.


Ich habe jetzt zum Probieren vieles am Code geändert. Aber ich denke das Prinziep ist zu erkennen.

Bitte sagt mir das hier ein Fehler drin ist und nicht das der tiny zu lahm ist dafür smiley-wink

Ach ja der Tiny läuft 8Mhz Intern

wäre toll wenn einer ne Idee hat und die kund tut.
Danke und Gruß derRobert


Code:
#include <SoftwareSerial.h>
#define rxPin 1
#define txPin 2


unsigned long timestamp1 = 0;
unsigned long timestamp2 = 0;
int timestamp3 = 0;
boolean LOWmerker=false;
int wert = 0;

SoftwareSerial serial(rxPin, txPin);
unsigned long test= timestamp3;

void setup(){

  pinMode(0,INPUT);
  pinMode(3,OUTPUT);
  digitalWrite (3, LOW);
   serial.begin(4800);
  serial.println("ATtiny85 Software serial");
}


void loop(){

 if(timestamp3 != test){
   serial.print ("TS3=");serial.println(timestamp3);
 test= timestamp3;}
 
 
  wert = digitalRead(4);

  if(wert==LOW && LOWmerker==false){
    timestamp1=micros();
    LOWmerker=true; 
  }


  if(wert==HIGH && LOWmerker==true){
    timestamp2=micros();
    LOWmerker=false; 
  }
 
timestamp3= timestamp2 - timestamp1;

  switch (timestamp3){
  case 190:
  rc1();
    break;
  case 180:
    rc2();
    break;
    default:
    digitalWrite(3,LOW);
 
  }


}
void rc1()
{
  digitalWrite(3, HIGH);
  delay(10);
  digitalWrite(3, LOW);
  timestamp2=0;
    timestamp3=0;
 
}

void rc2()
{
  digitalWrite(3, LOW);
  delay(100);
  digitalWrite(3, LOW);
  timestamp2=0;
    timestamp3=0;
 
}
43  International / Deutsch / Re: Wie die Variablen aus einer Libary "zugänglich machen" on: June 09, 2011, 05:30:04 pm
Da möchte ich hier mal allgemeines Intresse anmelden.

Das kann bestimmt für viele hilfreich sein....   und im Kontext zu einem konkreten Problem sicher besser nachvollziehbar als in irgendeinem Anfänger HowTo oder "ich lerne Programmieren" Buch

Gruß derRobert
44  International / Deutsch / Re: Suche Gehäuse für LCD on: June 09, 2011, 04:04:15 pm
genau das meinte ich.

i denke mit abkleben und nach kurzer abbindezeit währe das Ergebnis TOP gewesen...

aber auch so, wenn das Display gut zu lesen ist, das Ergebnis in Ordnung  VOR ALLEM für den ersten versuch.   ich denke so was in der richtung werde ich auch mal versuchen   und ;-) ich werde -->weil hab i jetz gelernt<-- abkleben ;-)      is nich böse gemeint!!!!   aus solchen sachen lernt man... 

Ich finds gut und danke dir das du das Ergebnis hier vorgestellt hast

Gruß derRobert
45  International / Deutsch / Re: Serielle kommunikation on: June 09, 2011, 10:11:53 am
Es war wirklich ne fehleinstellung   stty -F /dev/ttyUSB0 -echo  hat abhilfe gebracht.

wie der Parametername schon sagt wird das echo abgeschaltet smiley-wink

endlich kanns richtig los gehen


Gruß derRobert
Pages: 1 2 [3] 4 5 ... 7