INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Uno r3 mit nano verbinden.
02.01.2015, 14:15
Beitrag #1
Uno r3 mit nano verbinden.
Hallo

Habe einen arduino nano mit lcd usw. Mein Projekt läuft auch darauf wunderbar bis jetzt.

Jetzt habe ich noch einen uno r3 mit einem 3,5 touch tft bekommen worauf ich mein Projekt gerne umschreiben würde.
Problem ist das alle Ports des uno durch das tft belegt sind ist nen shield.

Gibt es eine Möglichkeit den nano mit dem uno zu verbinden.
So das der uno das Display steuert und an den nano meine sensoren kommen?

Wie muss ich dann meinen Sketch aufteilen?

Für Hilfe wäre ich dankbar.
Mfg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2015, 15:02 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2015 15:04 von Luppi.)
Beitrag #2
RE: Uno r3 mit nano verbinden.
Das Display ist es.
https://www.ex-store.de/LCD-TFT/3-5-TFT-...::189.html

Hab auch noch einen Mega 2560 hier liegen. aber da bekomme ich die ansteuerung nicht hin.
Hab schon verschiedene sachen ausm Netz probiert Krieg ich aber nichts hin mit.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2015, 23:07
Beitrag #3
RE: Uno r3 mit nano verbinden.
Hab noch was rum gestöbert und in einem anderen forum das hier gefunden.

Code:
//   ic:ili9327  
#define LCD_RD   A0
#define LCD_WR   A1    
#define LCD_RS   A2        
#define LCD_CS   A3      
#define LCD_REST A4

void Lcd_Writ_Bus(char VH)
{
unsigned char i,temp,data;
data=VH;
for(i=8;i<=9;i++)
{
   temp=(data&0x01);
   if(temp)
     digitalWrite(i,HIGH);
   else
     digitalWrite(i,LOW);
   data=data>>1;
}
for(i=2;i<=7;i++)
{
   temp=(data&0x01);
   if(temp)
     digitalWrite(i,HIGH);
   else
     digitalWrite(i,LOW);
   data=data>>1;
}

digitalWrite(LCD_WR,LOW);
digitalWrite(LCD_WR,HIGH);
}


void Lcd_Write_Com(char VH)  
{  
digitalWrite(LCD_RS,LOW);
Lcd_Writ_Bus(VH);
}

void Lcd_Write_Data(char VH)
{
digitalWrite(LCD_RS,HIGH);
Lcd_Writ_Bus(VH);
}

void Lcd_Write_Com_Data(int com,int dat)
{
Lcd_Write_Com(com);
Lcd_Write_Data(dat);
}

void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{
Lcd_Write_Com(0x2a); // Set_column_address 4 parameters
Lcd_Write_Data(x1>>8);
Lcd_Write_Data(x1);
Lcd_Write_Data(x2>>8);
Lcd_Write_Data(x2);

Lcd_Write_Com(0x2b); // Set_page_address 4 parameters
Lcd_Write_Data(y1>>8);
Lcd_Write_Data(y1);
Lcd_Write_Data(y2>>8);
Lcd_Write_Data(y2);

Lcd_Write_Com(0x2c); // Write_memory_start
}

void Lcd_Init(void)
{
digitalWrite(LCD_REST,HIGH);
delay(5);
digitalWrite(LCD_REST,LOW);
delay(15);
digitalWrite(LCD_REST,HIGH);
delay(15);

digitalWrite(LCD_CS,HIGH);
digitalWrite(LCD_WR,HIGH);
digitalWrite(LCD_CS,LOW);  //CS

Lcd_Write_Com(0xE9);
Lcd_Write_Data(0x20);

Lcd_Write_Com(0x11); //Exit Sleep
delay(100);

Lcd_Write_Com(0xD1);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x71);
Lcd_Write_Data(0x19);

Lcd_Write_Com(0xD0);
Lcd_Write_Data(0x07);
Lcd_Write_Data(0x01);
Lcd_Write_Data(0x08);

Lcd_Write_Com(0x36);
Lcd_Write_Data(0x48);

Lcd_Write_Com(0x3A);
Lcd_Write_Data(0x05);

Lcd_Write_Com(0xC1);
Lcd_Write_Data(0x10);
Lcd_Write_Data(0x10);
Lcd_Write_Data(0x02);
Lcd_Write_Data(0x02);

Lcd_Write_Com(0xC0); //Set Default Gamma
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x35);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x01);
Lcd_Write_Data(0x02);

Lcd_Write_Com(0xC5); //Set frame rate
Lcd_Write_Data(0x04);

Lcd_Write_Com(0xD2); //power setting
Lcd_Write_Data(0x01);
Lcd_Write_Data(0x44);

Lcd_Write_Com(0xC8); //Set Gamma
Lcd_Write_Data(0x04);
Lcd_Write_Data(0x67);
Lcd_Write_Data(0x35);
Lcd_Write_Data(0x04);
Lcd_Write_Data(0x08);
Lcd_Write_Data(0x06);
Lcd_Write_Data(0x24);
Lcd_Write_Data(0x01);
Lcd_Write_Data(0x37);
Lcd_Write_Data(0x40);
Lcd_Write_Data(0x03);
Lcd_Write_Data(0x10);
Lcd_Write_Data(0x08);
Lcd_Write_Data(0x80);
Lcd_Write_Data(0x00);

Lcd_Write_Com(0x2A);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0xeF);

Lcd_Write_Com(0x2B);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x00);
Lcd_Write_Data(0x01);
//  Lcd_Write_Data(0x3F);
Lcd_Write_Data(0x8F); // on internet

Lcd_Write_Com(0x29); //display on      

Lcd_Write_Com(0x2C); //display on

digitalWrite(LCD_CS,HIGH);
}

void H_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c)                  
{
unsigned int i,j;
Lcd_Write_Com(0x02c); //write_memory_start
digitalWrite(LCD_RS,HIGH);
digitalWrite(LCD_CS,LOW);
l=l+x;
Address_set(x,y,l,y);
j=l*2;
for(i=1;i<=j;i++)
{
   Lcd_Write_Data(c);
}
digitalWrite(LCD_CS,HIGH);  
}

void V_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c)                  
{
unsigned int i,j;
Lcd_Write_Com(0x02c); //write_memory_start
digitalWrite(LCD_RS,HIGH);
digitalWrite(LCD_CS,LOW);
l=l+y;
Address_set(x,y,x,l);
j=l*2;
for(i=1;i<=j;i++)
{
   Lcd_Write_Data(c);
}
digitalWrite(LCD_CS,HIGH);  
}

void Rect(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c)
{
H_line(x  , y  , w, c);
H_line(x  , y+h, w, c);
V_line(x  , y  , h, c);
V_line(x+w, y  , h, c);
}

void Rectf(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c)
{
unsigned int i;
for(i=0;i<h;i++)
{
   H_line(x  , y  , w, c);
   H_line(x  , y+i, w, c);
}
}

void LCD_Clear(unsigned int j)                  
{
unsigned int i,m;
Lcd_Write_Com(0x02c); //write_memory_start
digitalWrite(LCD_RS,HIGH);
digitalWrite(LCD_CS,LOW);
Address_set(0,0,479,399);

for(i=0;i<480;i++)
   for(m=0;m<400;m++)
   {
     Lcd_Write_Data(j);
   }
digitalWrite(LCD_CS,HIGH);  
}

void setup()
{
for(int p=2;p<10;p++)
{
   pinMode(p,OUTPUT);
}
pinMode(A0,OUTPUT);
pinMode(A1,OUTPUT);
pinMode(A2,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(A4,OUTPUT);
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
digitalWrite(A4, HIGH);
Lcd_Init();
LCD_Clear(0x00);
}

void loop()
{  

for(int i=0;i<1000;i++)
{
   Rect(random(300),random(300),random(300),random(300),random(65535)); // rectangle at x, y, with, hight, color
}
LCD_Clear(0x00);
}

Das funktioniert soweit.
Es dieses Demo mit den rechteck kästchen ausgegeben.
Nur irgend etwas anderes anzeigen kann ich damit nicht.
Und so weit bin ich mit der Arduino Programierug noch nicht das ich das verstehe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Neuer Bootloader für Nano ? Mathias 11 577 17.05.2018 17:35
Letzter Beitrag: Mathias
  Ardunio Nano als Lichtsteuerung im RC Truck RC Bastler 14 1.080 01.04.2018 16:39
Letzter Beitrag: RC Bastler
  welche Komponenten / Schnittstellen passen zum Arduino Nano Thorsten_S 8 710 04.03.2018 18:02
Letzter Beitrag: Tommy56
  Nano vs Micro... carsten9189 19 1.243 01.03.2018 11:22
Letzter Beitrag: carsten9189
  Arudino Nano Pegelwandler fighterii 2 366 16.02.2018 14:28
Letzter Beitrag: fighterii
  UNO und NANO: Unterschiedliches Verhalten manfred474 13 847 15.02.2018 18:25
Letzter Beitrag: georg01
  Mini-PAC mit Arduino NANO koppeln Harry 11 988 22.12.2017 12:13
Letzter Beitrag: Harry
  Box cases für arduino nano UNO etc mit ethernet buchse sepp01 8 1.028 22.11.2017 14:55
Letzter Beitrag: sepp01
  nano, micro oder? für LAN Shield sepp01 10 1.197 12.11.2017 11:30
Letzter Beitrag: sepp01
  USB-zu-DMX-Durchleitung mit Arduino Nano AndiUno 15 1.458 29.09.2017 21:51
Letzter Beitrag: fraju

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste