สร้าง Oscilloscope โดยใช้ SainSmart Mega2560 พร้อมด้วย TFT LCD Shield และหน้าจอสีระบบสัมผัสขนาด 3.5 ": 8 ขั้นตอน (พร้อมรูปภาพ)

สร้าง Oscilloscope โดยใช้ SainSmart Mega2560 พร้อมด้วย TFT LCD Shield และหน้าจอสีระบบสัมผัสขนาด 3.5 ": 8 ขั้นตอน (พร้อมรูปภาพ)

สารบัญ:

Anonim

คำแนะนำนี้จะแสดงวิธีการสร้างหน้าจอสัมผัสแบบพกพา

Oscilloscope น้อยกว่า 40 U $!

ออสซิลโลสโคปเป็นหนึ่งในเครื่องมืออิเล็กทรอนิกส์ที่ทรงพลังที่สุด

มีให้สำหรับนักอดิเรกอิเล็กทรอนิกส์นักทดลองและวิศวกร มันคือ

ส่วนใหญ่ใช้เพื่อวัดสัญญาณที่แปรผันตามเวลา เมื่อใดก็ตามที่คุณมีสัญญาณ

ที่แตกต่างกันไปตามเวลา (ช้าเร็วและ / หรือเป็นระยะ) คุณสามารถใช้

ออสซิลโลสโคปเพื่อวัดภาพและมองหาสิ่งที่คาดไม่ถึง

คุณสมบัติในนั้น

เราสามารถใช้ออสซิลโลสโคปเพื่อสังเกตและศึกษาลักษณะสัญญาณ

ที่เรามองไม่เห็น

คุณจะได้เรียนรู้เกี่ยวกับ Arduino mega analog เป็น Digital converter (ADC)

เราจะใช้อินพุต Arduino อะนาล็อก A0 เพื่อสุ่มตัวอย่างและจับเวลา

เปลี่ยนแปลงสัญญาณโดยการเขียนโปรแกรมที่จะแสดงสัญญาณเหล่านั้น

ในหน้าจอสัมผัส TFT LCD ขนาด 3.8 นิ้วและเราจะใส่ข้อมูลเพื่อปรับเปลี่ยน

พฤติกรรมออสซิลโลสโคปโดยใช้ความสามารถในการสัมผัสของหน้าจอแสดงผล

ก่อนที่เราจะเริ่มสร้างและเขียนโปรแกรมให้ตรวจสอบพื้นฐานก่อน

ลักษณะของออสซิลโลสโคป

นี่คือฟังก์ชั่นที่คุณสามารถควบคุมได้ในออสซิลโลสโคป

ความเร็วในการกวาด ความเร็วในการกวาดนั้นมักจะวัดเป็นหน่วยของเวลาต่อระยะทาง

เช่นมิลลิวินาที / เซนติเมตรหรือมิลลิวินาทีต่อการแบ่งนอกจากนี้ยังอาจ

จะเรียกว่าไวแนวนอน

ความไวในแนวตั้ง. นั่นคือการวัดความละเอียดของจุดแสดงผล

คือแรงดันไฟฟ้าที่ใช้กับขั้วอินพุต มันมักจะวัดใน

โวลต์ / เซนติเมตรหรือโวลต์ต่อการหาร

สัญญาณทริกเกอร์ สามารถสร้างขึ้นเมื่อค่าสัญญาณถึงบางส่วน

ระดับเฉพาะ - ระดับทริกเกอร์ ในกรณีส่วนใหญ่คุณสามารถตั้งค่าทริกเกอร์

ระดับเป็นค่าแรงดันไฟฟ้าที่คุณเลือก ทริกเกอร์จะใช้ในการจับภาพและ

ปรับรูปแบบของคลื่นให้คงที่บนหน้าจอหรือรอเหตุการณ์ก่อน

การจับข้อมูล

ออสซิลโลสโคปเช่น DC DVM 4 ช่องทางของฉันจะไม่แม่นยำเท่า

หน่วยโฆษณา แต่ใช้งานได้ดีทีเดียวสำหรับแรงดันไฟฟ้าต่ำและความถี่ต่ำ

วัสดุ:

ขั้นตอนที่ 1: อัพเดท: ร่างการแปลง Oscope เป็น 3 ช่องสัญญาณ DVM พร้อมจอแสดงผลกราฟิก + ตัวต่อเลโก้

ขอบคุณทุกคนที่โหวตให้ฉัน! Instructable นี้ชนะรางวัลที่ 3 ในการแข่งขัน Arduino และรางวัลที่หนึ่งในการประกวด Gadget …

รวมเป็นรูปภาพและรหัสสำหรับแปลง osc ของคุณเป็น 3 Channel DVM และเพื่อแสดงเอาต์พุตของแต่ละช่องในการแสดงขอบเขตโดยการกดปุ่มซอฟท์คีย์บนจอแสดงผล (ปุ่มที่สามจากด้านบน)

คุณจะต้องใช้ขั้วต่อพินตัวหญิงรูปตัว L หากคุณต้องการความยืดหยุ่นในการใส่จัมเปอร์มิฉะนั้นเพียงแค่ดัดพินที่ด้านใดด้านหนึ่งของจัมเปอร์เพื่อเสียบเข้ากับช่องสัญญาณอนาล็อก (A0- A3) เพื่อใช้เป็นโพรบของคุณ.

เพียงดาวน์โหลดภาพร่างและอัปโหลดไปยัง Arduino

คุณสามารถติดป้ายแต่ละช่องแยกกันเพียงแค่เปลี่ยนถ้อยคำในแบบร่าง

ฉันยังได้ทำเลโก้สำหรับขอบเขต.. ตรวจสอบภาพ

ขั้นตอนที่ 2: รายการอะไหล่

คุณจะต้องการ:

  • Sainsmart mega2560 คณะกรรมการที่มี 3.5 "tft lcd โมดูลสัมผัสจอแสดงผลและชุดโล่
  • พีซีที่มี arduino IDE และพอร์ต USB ฟรี
  • สาย USB
  • สายจัมเปอร์
  • UTFT library และ UTouch library จาก Henning Karlsen เว็บ:

ขั้นตอนที่ 3: สร้างฮาร์ดแวร์

การสร้าง Oscilloscope ค่อนข้างง่าย คุณเพียงแค่ใส่ชิ้นส่วนของชุด Sainsmart เข้าด้วยกัน สิ่งที่คุณต้องทำคือเพิ่มสองจัมเปอร์; หนึ่งสำหรับกราวด์และอีกอันหนึ่งใช้เป็นโพรบสำหรับการทดสอบออสซิลโลสโคปของคุณ

คุณจะต้องบิดพินที่ด้านหนึ่งของสายจัมเปอร์และเสียบเข้ากับพิน A0 และพิน GND ของ Arduino (ดูรูปเพื่อดูรายละเอียด) ก่อนที่จะติดตั้งจอแสดงผลโล่เนื่องจากจอแสดงผลจะครอบคลุมพอร์ตหนึ่งครั้ง มันอยู่ในสถานที่

เสียบ Shield เข้ากับ Arduino จากนั้นเสียบจอแสดงผลเข้ากับ Shield แล้วเสร็จ !!!

ทีนี้ลองทดสอบการแสดงผลก่อนที่เราจะเปลี่ยนมันให้เป็นออสซิลโลสโคป

ขั้นตอนที่ 4: ซอฟต์แวร์: การทดสอบไลบรารี UTFT

หากคุณติดตั้งชุดอุปกรณ์ของคุณเข้าด้วยกันให้เสียบเข้ากับสาย USB ที่เชื่อมต่อกับพีซีของคุณโดยใช้ Arduino IDE

หากคุณยังไม่ได้ดาวน์โหลดไลบรารี UTFT และ UTouch และคัดลอกไปยังโฟลเดอร์ไลบรารีที่คุณติดตั้ง arduino IDE

หากติดตั้งไลบรารีอย่างถูกต้องคุณจะเห็นตัวเลือก UTFT และ UTouch เมื่อคุณคลิกที่ตัวเลือกไฟล์และเลื่อนลงไปที่ตัวอย่าง

หากตัวเลือก UTFT อยู่ในรายการเมนูให้เลือกจากนั้นเลือก arduino และสุดท้ายคือ UTFT_Demo_320x240 นี่จะโหลดโปรแกรมตัวอย่างเจ๋ง ๆ

เมื่อโหลดโปรแกรมใน IDE แล้วให้เลื่อนลงเพื่อดูรหัสต่อไปนี้:

// Uncomment บรรทัดถัดไปสำหรับ Arduino 2009 / Uno

// UTFT myGLCD (ITDB32S, 19,18,17,16); // อย่าลืมเปลี่ยนพารามิเตอร์รุ่นให้เหมาะกับโมดูลจอแสดงผลของคุณ!

// Uncomment บรรทัดต่อไปสำหรับ Arduino Mega

UTFT myGLCD (ITDB32S, 38,39,40,41); // อย่าลืมเปลี่ยนพารามิเตอร์รุ่นให้เหมาะกับโมดูลจอแสดงผลของคุณ!

แสดงความคิดเห็นคำสั่งสำหรับ UNO และยกเลิกคำสั่งสำหรับ Mega เช่นเดียวกับที่ฉันทำ

ตอนนี้ไปที่เมนูเครื่องมือคลิกบนบอร์ดแล้วเลือก Arduino Mega 2560 หรือ Mega ADK หากยังไม่ได้เลือก

คลิกที่ตรวจสอบเพื่อรวบรวมโปรแกรม หากไม่มีข้อผิดพลาดให้คลิกที่อัพโหลดเพื่อโหลดและรันโปรแกรม

หากทุกอย่างโอเคคุณจะเห็นโปรแกรมตัวอย่างสุดเจ๋งทำงานอยู่ รูปภาพในขั้นตอนนี้แสดงภาพหน้าจอของการสาธิตการทำงาน

ขั้นตอนที่ 5: ซอฟต์แวร์: ทดสอบ UTouch Library

ตอนนี้เราต้องทดสอบ Utouch Library

ไปที่เมนูไฟล์แล้วเลือก; ตัวอย่าง> UTouch> Arduino> Utouch_ButtonTest และโหลดโปรแกรมไปยัง IDE

ตรวจสอบและเรียกใช้โปรแกรม

คุณควรเห็นปุ่มกดปรากฏขึ้นในจอแสดงผลและเมื่อคุณกดปุ่มตัวเลขพวกเขาควรจะปรากฏขึ้นที่ด้านล่างของหน้าจอ

หากทุกอย่างเป็นไปด้วยดีเราพร้อมที่จะโหลดซอฟต์แวร์ Oscilloscope

ขั้นตอนที่ 6: Oscilloscope

ด้านล่างคุณจะพบภาพร่างของ Oscilloscope ก่อนที่เราจะคัดลอกและวางโปรแกรมเรามาทบทวนข้อ จำกัด และอธิบายโปรแกรมก่อน

ฉันต้องทำการวิจัยในปริมาณที่พอเหมาะเพื่อให้ได้มากับโค้ดและตัวอย่างบางส่วนถูก "ยืม" จากหลายแหล่ง

ฉันแบ่งโปรแกรมออกเป็นหลายรูทีนย่อยเพื่อให้ง่ายต่อการเข้าใจ รหัสได้รับการบันทึกไว้เป็นอย่างดี แต่หากคุณมีปัญหาในการทำความเข้าใจให้แสดงความคิดเห็นและฉันจะพยายามอธิบาย

แบนด์วิดธ์ของออสซิลโลสโคป จำกัด เพียง 1 khz แต่มีที่ว่างสำหรับการปรับปรุง

อินพุตถูก จำกัด ไว้ที่ 5volt peak ถึง peak waveform ยกเว้นว่าคุณใช้ตัวแบ่งแรงดันไฟฟ้าที่อินพุตและ จำกัด ให้กับรูปคลื่นเชิงบวกตั้งแต่ 0 ถึง 5 โวลต์

ฉันใช้รหัสที่พบใน: http://www.microsmart.co.za/technical/2014/03/01/advanced-arduino-adc/ เพื่อปรับเวลาตัวอย่าง ADC

ฟังก์ชั่นกราฟิกและการสัมผัสถูกดัดแปลงและยืมจากตัวอย่างของ Henning Karlsen ที่มีให้ในห้องสมุดของเขา

ฉันใช้ตัวควบคุมแรงดันไฟฟ้า LM 317 และตัวจับเวลา IC 555 ตัวเป็นออสซิลเลเตอร์แบบ Astable เพื่อสร้างสัญญาณที่ใช้ทดสอบอินพุตออสซิลโลสโคป

หวังว่าคุณจะสนุกกับการอ่านและหวังว่าจะสร้างคำสั่งนี้ หากคุณพบว่ามีประโยชน์โปรดลงคะแนนให้ฉันในการแข่งขัน

บันทึก: ฉันรวม sKetch, UTFT และไลบรารี UTouch ไว้ในไฟล์ libraries.zip สำหรับคนที่มีปัญหา

คัดลอกและวางภาพร่างไปยัง Arduino IDE ของคุณ

// ---------------------- เริ่มโปรแกรม

/*--------------------------------------------------------------

โปรแกรม: OscopetouchLCDmega

คำอธิบาย: ออสซิลโลสโคปแบบดิจิตอลพร้อมแสดงข้อมูล

บน Color TFT LCD พร้อมหน้าจอสัมผัส

ฮาร์ดแวร์: sainsmart mega2560 board พร้อม 3.5 "tft lcd touch module display และ shield kit

http: //www.sainsmart.com/home-page-view/sainsmart …

ซอฟต์แวร์: พัฒนาโดยใช้ซอฟต์แวร์ Arduino 1.0.3

โปรแกรมนี้ต้องการไลบรารี UTFT และ

UTouch library จาก Henning Karlsen

เว็บ:

เวอร์ชั่น 1.00

วันที่: 5 เมษายน 2014

ผู้แต่ง: johnag

--------------------------------------------------------------*/

#include

#include

// ประกาศว่าเราจะใช้แบบอักษรใด

exint uint8_t SmallFont;

// เริ่มต้นฟังก์ชั่นหน้าจอและสัมผัส

UTFT myGLCD (ITDB32S, 38,39,40,41);

UTouch myTouch (6,5,4,3,2);

// ประกาศตัวแปร

ถ่าน buf 12;

int x, y;

int Input = 0;

ตัวอย่างไบต์ 320;

ไบต์ OldSample 320;

int StartSample = 0;

int EndSample = 0;

int Max = 100;

int Min = 100;

int โหมด = 0;

int dTime = 1;

int tmode = 0;

ทริกเกอร์ int = 0;

int SampleSize = 0;

int SampleTime = 0;

int dgvh;

int hpos = 50; // ตั้งค่า 0v บนกริดแนวนอน

int vsens = 4; // ความไวในแนวตั้ง

// กำหนด ADC prescaler ที่หลากหลาย

const ไม่ได้ลงทะเบียนถ่าน PS_16 = (1 << ADPS2);

const ไม่ได้ลงทะเบียนถ่าน PS_32 = (1 << ADPS2) | (1 << ADPS0);

const ไม่ได้ลงทะเบียนถ่าน PS_64 = (1 << ADPS2) | (1 << ADPS1);

const ไม่ได้ลงทะเบียนถ่าน PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

// ------------ เริ่มรูทีนย่อย ---------------------------------- -

// -------- วาดปุ่มย่อย

ปุ่มโมฆะ () {

myGLCD.setColor (0, 0, 255);

myGLCD.fillRoundRect (250, 1, 310, 50);

myGLCD.fillRoundRect (250, 55, 310, 105);

myGLCD.fillRoundRect (250, 110, 310, 160);

myGLCD.fillRoundRect (250, 165, 310, 215);

}

// ------- ตำแหน่งหน้าจอสัมผัสย่อย

สัมผัสเป็นโมฆะ () {

ในขณะที่ (myTouch.dataAvailable ())

{

myTouch.read ();

x = myTouch.getX ();

การ y = myTouch.getY ();

ล่าช้า (500);

หาก ((y> = 1) && (y <= 50)) // แถวล่าช้า

{

ถ้า ((x> = 250) && (x <= 300)) // ปุ่มหน่วงเวลา

waitForIt (250, 1, 310, 50);

โหมด = โหมด ++;

{

myGLCD.setColor (255, 0, 0);

myGLCD.drawRoundRect (250, 1, 310, 50);

// เลือกเวลาหน่วง

if (mode == 0) dTime = 0;

if (mode == 1) dTime = 1;

if (mode == 2) dTime = 2;

ถ้า (โหมด == 3) dTime = 5;

if (mode == 4) dTime = 10;

if (mode == 5) dTime = 20;

ถ้า (โหมด == 6) dTime = 30;

ถ้า (โหมด == 7) dTime = 50;

ถ้า (โหมด == 8) dTime = 100;

ถ้า (โหมด == 9) dTime = 200;

ถ้า (โหมด == 10) dTime = 500;

if (mode> 10) mode = 0;

}}

ถ้า ((y> = 70) && (y <= 120)) // แถวทริกเกอร์

{

ถ้า ((x> = 250) && (x <= 300)) // ปุ่มทริกเกอร์

waitForIt (250, 55, 310, 105);

tmode = tmode ++;

{

myGLCD.setColor (255, 0, 0);

// เลือกค่าทริกเกอร์ของซอฟต์แวร์

myGLCD.drawRoundRect (250, 55, 310, 105);

if (tmode == 1) Trigger = 0;

ถ้า (tmode == 2) Trigger = 10;

ถ้า (tmode == 3) Trigger = 20;

ถ้า (tmode == 4) Trigger = 30;

ถ้า (tmode == 5) Trigger = 50;

if (tmode> 5) tmode = 0;

}}

หาก ((y> = 130) && (y <= 180)) // H ตำแหน่งแถว

{

หากปุ่ม ((x> = 250) && (x <= 300)) // H ตำแหน่งปุ่ม

waitForIt (250, 110, 310, 160);

hpos = hpos ++;

{

myGLCD.setColor (255, 0, 0);

myGLCD.drawRoundRect (250, 110, 310, 160);

myGLCD.clrScr ();

ปุ่ม ();

ถ้า (hpos> 60) hpos = 50;

}}}}

// ---------- รอย่อยการสัมผัส

โมฆะ waitForIt (int x1, int y1, int x2, int y2)

{

ในขณะที่ (myTouch.dataAvailable ())

myTouch.read ();

}

// ---------- วาดตารางย่อย

เป็นโมฆะ DrawGrid () {

myGLCD.setColor (0, 200, 0);

สำหรับ (dgvh = 0; dgvh <5; dgvh ++) {

myGLCD.drawLine (dgvh * 50, 0, dgvh * 50, 240);

myGLCD.drawLine (0, dgvh * 50, 245, dgvh * 50);

}

myGLCD.drawLine (245, 0, 245, 240);

myGLCD.drawLine (0, 239, 245, 239);

myGLCD.setColor (255, 255, 255);

myGLCD.drawRoundRect (250, 1, 310, 50);

myGLCD.drawRoundRect (250, 55, 310, 105);

myGLCD.drawRoundRect (250, 110, 310, 160);

myGLCD.drawRoundRect (250, 165, 310, 215);

}

// ------ รอให้อินพุตมีค่ามากกว่าทริกเกอร์ย่อย

ทริกเกอร์เป็นโมฆะ () {

ในขณะที่ (อินพุต <ทริกเกอร์) {Input = analogRead (A0) * 5/100;

}}

// --------------- สิ้นสุดรูทีนย่อย ----------------------

การตั้งค่าเป็นโมฆะ ()

myGLCD.InitLCD ();

myGLCD.clrScr ();

myTouch.InitTouch ();

myTouch.setPrecision (PREC_MEDIUM);

ปุ่ม ();

pinMode (0, INPUT);

// ตั้งค่า ADC

ADCSRA & = ~ PS_128; // ลบบิตที่กำหนดโดยไลบรารี Arduino

// คุณสามารถเลือกพรีสเกลเลอร์ได้จากด้านล่าง

// PS_16, PS_32, PS_64 หรือ PS_128

ADCSRA

void loop () {

ในขณะที่ (1) {

DrawGrid ();

แตะ();

ทริกเกอร์ ();

// รวบรวมข้อมูลอะนาล็อกลงในอาร์เรย์

StartSample = micros ();

สำหรับ (int xpos = 0;

xpos <240; xpos ++) {ตัวอย่าง xpos = analogRead (A0) * 5/102;

delayMicroseconds (dTime);

}

EndSample = micros ();

// แสดงข้อมูลอะนาล็อกที่เก็บรวบรวมจากอาร์เรย์

สำหรับ (int xpos = 0; xpos <239;

xpos ++)

{

// ลบการแสดงผลก่อนหน้า

myGLCD.setColor (0, 0, 0);

myGLCD.drawLine (xpos + 1, 255-OldSample xpos + 1 * vsens-hpos, xpos + 2, 255-OldSample xpos + 2 * vsens-hpos);

ถ้า (xpos == 0) myGLCD.drawLine (xpos + 1, 1, xpos + 1, 239);

// วาดข้อมูลใหม่

myGLCD.setColor (255, 255, 255);

myGLCD.drawLine (xpos, 255- ตัวอย่าง xpos * vsens-hpos, xpos + 1, 255- ตัวอย่าง xpos + 1 * vsens-hpos);

}

// กำหนดแรงดันไฟฟ้าตัวอย่างสูงสุดถึงสูงสุด

สูงสุด = ตัวอย่าง 100;

ต่ำสุด = ตัวอย่าง 100;

สำหรับ (int xpos = 0;

xpos <240; xpos ++)

{

OldSample xpos = ตัวอย่าง xpos;

ถ้า (ตัวอย่าง xpos> สูงสุด) สูงสุด = ตัวอย่าง xpos;

ถ้า (ตัวอย่าง xpos <ขั้นต่ำ) Min = ตัวอย่าง xpos;

}

// แสดงเวลาตัวอย่างเวลาหน่วงและระดับทริกเกอร์

myGLCD.setBackColor (0, 0, 255);

myGLCD.setFont (SmallFont);

myGLCD.setBackColor (0, 0, 255);

myGLCD.print ("Delay", 260, 5);

myGLCD.print ("", 270, 20);

myGLCD.print (itoa (dTime, buf, 10), 270, 20);

myGLCD.print ("Trig.", 260, 60);

myGLCD.print ("", 270, 75);

myGLCD.print (itoa (Trigger, buf, 10), 270, 75);

myGLCD.print ("H Pos.", 260, 120);

myGLCD.print (itoa (hpos, buf, 10), 270, 135);

//myGLCD.setBackColor (0, 0, 0);

SampleTime = (EndSample-StartSample) / 1000;

myGLCD.print ("Sec.", 205, 210);

myGLCD.print ("", 280, 30);

myGLCD.print (itoa (SampleTime, buf, 10), 205, 220);

// ช่วงจาก 0 ถึง 64 * 78 = 4992 mV

SampleSize = (สูงสุด - ต่ำสุด) * 78;

myGLCD.print ("mVolt", 5, 210);

myGLCD.print (itoa (SampleSize, buf, 10), 5, 220);

myGLCD.print (itoa (analogRead (A0) * 4.15 / 10.23, buf, 10), 110, 220);

}}

// ------------------------- โปรแกรมสิ้นสุด

ขั้นตอนที่ 7: วิดีโอของ Oscope in Action

ขั้นตอนที่ 8: วิดีโออื่น

รองชนะเลิศอันดับที่ใน

การประกวด Arduino

รางวัลที่สองใน

การประกวดการแฮ็กอุปกรณ์และอุปกรณ์เสริม

4 คนสร้างโปรเจคนี้!

  • scottm214 ทำมัน!

  • e.ma.niak ทำมันขึ้นมา!

  • Whitmore12 สร้างมันขึ้นมา!

  • grumpyboots ทำให้มัน!

คุณทำโครงการนี้หรือไม่? แบ่งปันกับเรา!

ข้อเสนอแนะ

  • Mash Up ตัวอย่างรหัส Arduino

  • Opensource Ornithopter Prototype Arduino ขับเคลื่อนและควบคุมจากระยะไกล

  • อินเทอร์เน็ตของชั้นเรียน

  • พรรคท้าทาย

  • การประกวด Arduino 2019

  • IoT Challenge

84 การสนทนา

0

DavidPatterson

4 ปีก่อนในบทนำ

บทความที่ยอดเยี่ยม!

ฉันจะมองหา tft สำหรับ mega ของฉัน!

คุณคิดว่าอัตราการรีเฟรชประเภทใดของ tft ของคุณ?

คุณได้พิจารณาการอ่านพอร์ตอะนาล็อกโดยขัดจังหวะ -

ฉันมีการออกแบบออสซิลโลสโค่ 153K โดยใช้เมกะกับฮาร์ดแวร์และซอฟต์แวร์ทริกเกอร์

http: //www.instructables.com/id/Arduino-High-speed …

มันน่าสนใจที่จะนำแนวคิดทั้งสองมารวมกัน

7 คำตอบ 0

johnag DavidPatterson

ตอบ 4 ปีที่ผ่านมาในบทนำ

ขออภัยในความล่าช้าในการตอบกลับ ขอบคุณสำหรับความคิดเห็นของคุณ ฉันไม่รู้อัตรารีเฟรชของหน้าจอยังไม่ได้ตรวจสอบรายละเอียดสเปค แน่นอนว่ามันจะปรับปรุงขอบเขตถ้าคุณสามารถเพิ่มแบนด์วิดท์โดยใช้การออกแบบของคุณ หากคุณได้รับชุดและลองแนวคิดของคุณโปรดแบ่งปัน.. ถ้าฉันมีเวลาฉันอาจลองด้วยตัวเอง.. ขอขอบคุณอีกครั้ง

0

DavidPatterson johnag

ตอบ 4 ปีที่ผ่านมาในบทนำ

ในที่สุดหน้าจอ 3.2 นิ้วและโล่ก็มาถึง ฉันใช้ Mega ของฉันมากกว่า Sainsmart

การชุมนุมเป็นเรื่องง่าย - ฉันเพิ่มตัวเชื่อมต่อสำหรับพอร์ตอะนาล็อก pwm10 ศูนย์และ 5V การเขียนโปรแกรมไม่ยาก - Henning ผู้เขียนห้องสมุดมีเอกสารที่ยอดเยี่ยม ฉันไม่พบปัญหาในการใช้โปรโตคอลของเขา

ขอบเขตของฉันทำงานที่ 237-238 Khz

เครื่องอ่าน sdcard ที่อยู่บนโล่ทำงานและเปิดโอกาสในการบันทึกข้อมูล (ไม่ต้องพูดถึงการเพิ่มรูปภาพ)

สิ่งนี้ทำให้เกิดออสซิลโลสโคปแบบสแตนด์อะโลนที่ดีมาก

ขอบคุณสำหรับการทำงานของคุณ

0

waqasbadarwb DavidPatterson

ตอบ 4 ปีที่ผ่านมาในบทนำ

คุณสามารถให้รหัสได้หรือไม่

0

hemal1 waqasbadarwb

ตอบ 4 ปีที่ผ่านมาในบทนำ

สวัสดีห้องสมุดใดที่คุณใช้สำหรับสิ่งนี้

0

Hamzaikky DavidPatterson

ตอบ 4 ปีที่ผ่านมาในบทนำ

คุณเพิ่มรูปภาพอย่างไร

0

DavidPatterson Hamzaikky

ตอบ 4 ปีที่ผ่านมาในบทนำ

สวัสดี

สำหรับแอพพลิเคชั่นนี้ฉันใช้

ฟังก์ชั่น loadBitmap ของ Henning ซึ่งบันทึกไว้ในตัวอย่าง

มาพร้อมกับห้องสมุดของเขา สิ่งนี้ต้องการให้คุณแปลงขนาดหน้าจอ

รูปภาพ (หรือน้อยกว่า) เป็นรูปแบบ raw เขาจัดหาโปรแกรมด้วยห้องสมุดของเขา

ดาวน์โหลดสำหรับสิ่งนี้ หรือคุณสามารถใช้เครื่องมือแปลงออนไลน์ได้ที่:

http: //www.henningkarlsen.com/electronics/t_imagec …

ฉันใช้ไฟล์ขนาดหน้าจอ (320 x 240)

#include

#include

#include

#include

// เริ่มต้นฟังก์ชั่นหน้าจอและสัมผัส

UTFT myGLCD (ITDB32S, 38,39,40,41);

UTFT_tinyFAT myFiles (& myGLCD);

UTouch myTouch (6,5,4,3,2);

บูลีนโลโก้ = จริง;

res คำ

const int chipSelect = 53; // sd เลือกพิน

การตั้งค่าเป็นโมฆะ () {

pinMode (chipSelect, OUTPUT);

myGLCD.InitLCD ();

myGLCD.clrScr ();

int picsize_x = myGLCD.getDisplayXSize ();

int picsize_y = myGLCD.getDisplayYSize ();

ถ้า (โลโก้) {

if (file.initFAT () == 0) {

สวิตช์ (picsize_x);

res = myFiles.loadBitmap (0, 0, picsize_x, picsize_y, "LOGO.RAW");

ถ้า (res == 0) {

ล่าช้า (5000);

myGLCD.clrScr ();

}

}

}

// การตั้งค่าเพิ่มเติม

}

การใช้ไฟล์ raw สำหรับการแสดงผลแบบครั้งเดียวนั้นใช้ได้

อย่างไรก็ตาม

ต้องแปลงไฟล์หลายไฟล์ดูเหมือนใช้เวลานานสำหรับฉัน

ดังนั้นฉันจึงเขียนส่วนเพิ่มเติมลงในไลบรารี utft ของ Henning เพื่อประมวลผล 24 บิต

ไฟล์ bmp โดยตรง สิ่งนี้ใช้งานได้ดีและไม่ต้องการ UTFT_tinyFat

และจิ๋วไขมัน sdcard สามารถเข้าถึงได้โดยใช้ arduino sd มาตรฐาน

ห้องสมุด. โปรแกรมปรับปรุงของฉันจะโหลดบิตแมปขนาดหน้าจอใน 1.79S ซึ่งเป็น

เร็วกว่าระบบของ Henning เล็กน้อย

ฉันยังใช้ sd เพื่อบันทึกข้อมูล

ทั้งหมดในทุกจอห์นมีรายละเอียดโล่ที่มีประโยชน์มากและจอแอลซีดี!

0

DavidPatterson johnag

ตอบ 4 ปีที่ผ่านมาในบทนำ

สวัสดี

ฉันสั่งจอแอลซีดีเมื่อเดือนที่แล้ว - เห็นได้ชัดว่าอยู่ที่ไหนซักแห่งระหว่างจีนและอังกฤษ

ในช่วงเวลาที่ฉันได้พัฒนารหัสซึ่งทำงานที่

237.3 Khz พร้อมด้วยซอฟต์แวร์ที่สามารถกำหนดค่าได้

http: //forum.arduino.cc/index.php PHPSESSID = 3e1pvs …

ฉันยังได้เขียนซอฟต์แวร์ซึ่งทำงานที่ 1.2MHz โดยใช้ TLV571 พร้อมกับซอฟต์แวร์ทริกเกอร์

0

ValtherN

1 ปีที่ผ่านมา

ทุกคนที่มีโอกาสออกแบบกล่องพิมพ์แบบสามมิติสำหรับสิ่งนี้หรือไม่?

0

hackerh

1 ปีที่ผ่านมา

สวัสดี

ฉันมีแบบสอบถามเพื่อให้สามารถสร้าง Oscilloscope โดย Arduino UNO และมีอะนาล็อกที่รวดเร็วอ่านสามารถอ่านสัญญาณด้วยความเร็วสูงถึง 200KHZ

ถ้าเป็นไปได้มันช่วยให้ฉันทำสำเร็จ

เป็นไปได้ไหมที่จะให้ฉันตัวอย่างนี้เป็นโปรแกรมขนาดเล็กที่แสดงการกระทำของ ADC อย่างรวดเร็วเพื่อรับตัวอย่างของ 200KHZ

อีเมลนี้คือ [email protected]

ขอบคุณ

0

pipern8536d

1 ปีที่ผ่านมา

สามารถติดตั้งเครื่องนี้โดยใช้หน้าจอ oled ที่มีความยืดหยุ่นใหม่ได้หรือไม่?

0

AMSR1

1 ปีที่ผ่านมา

ดูเหมือนว่ารหัสจะทำงานได้ แต่ปุ่ม (Delay, Trig ฯลฯ) ไม่ทำงาน ทุกคนมีปัญหาเดียวกันหรือไม่

0

kevinmaker2018

1 ปีที่ผ่านมา

โครงการเจ๋ง ๆ ฉันสร้างมันด้วย Mega 2560 และจอแสดงผล TFT 3.2 นิ้ว มันทำงานได้ดี ขอบคุณสำหรับการแบ่งปัน.

0

jwzumwalt

1 ปีที่ผ่านมา

"ใช้งานได้ดีกับแรงดันไฟฟ้าต่ำและความถี่ต่ำ" หมายความว่าอย่างไร โปรดระบุข้อกำหนดที่เกี่ยวข้องบางอย่างในหนึ่งหรือสองย่อหน้าแรกเพื่อให้เราสามารถดูว่าโครงการสามารถใช้งานได้กับความต้องการของเรา …

2 คำตอบ 0

PatrickT90 jwzumwalt

ตอบกลับ 1 ปีที่ผ่านมา

เขาอธิบายปัญหาในการสอนอื่นของเขาซึ่งมีการเชื่อมโยงในประโยคที่ถาม

0

jwzumwalt PatrickT90

ตอบกลับ 1 ปีที่ผ่านมา

โอ้ … นี่คือคลิกเหยื่อและไม่ได้หมายความว่าให้ข้อมูลอย่างแท้จริง?

0

lasersystem

1 ปีที่ผ่านมา

สวัสดี

ฉันจะใช้ Arduino DUE กับ TFT LCD Sheild ด้วยการสัมผัสได้อย่างไร

ขอบคุณมาก

0

Harry N4HBM

2 ปีที่แล้ว

ฉันใช้บอร์ด SainSmart และมันก็ทำงานได้เหมือนมีเสน่ห์

0

Nonametruck

2 ปีที่แล้ว

ในที่สุดก็พบว่าเป็นโครงการที่ดีคุณใช้เวลาในการทำให้ฉันอยู่ที่นี่ขอบคุณที่สละเวลา..

0

brawls01

2 ปีที่แล้ว

คุณจะแก้ไขโค้ดเพื่อแสดงสัญญาณระหว่าง 0.2 และ -0.2 โวลต์อย่างไร