请教等离子屏上的Y板和X板如何检测好坏?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教等离子屏上的Y板和X板如何检测好坏?相关的知识,希望对你有一定的参考价值。
各位师傅好,本人对等离子电视维修还是一知半解的,近来朋友在外地帮我带回来一批等离子屏上的Y板和X板。最可惜的就是我没有屏去测试这些板子的好坏。请教各位:有什么办法用电阻法去测量这些板子的好坏吗?望高手指点一二。谢谢
不同品牌的产品,因为电路结构不同,设计不同,检修故障也不同。
以松下为例:SC板就是Y板,SS板就是X板,SU、SD就是上缓存板和下缓存板,C板就是选址板。SC、SU、SD板三块板位于屏幕的左边(后视图),SS板位于屏幕的右边,C板位于屏幕的下边缘。
SC板的输出,加到SU、SD板,SU板与、SD板与屏幕直接相连,驱动屏幕。SU板负责上半屏的扫描,SD板负责下半屏的扫描。
SC板产生驱动屏发光的交流电压,这个交流电压的周期是5US。幅度是180VP-P。SC板输出的这个放电交流电压,同时加到SU、SD板,SU、SD板在逻辑板送来的时序脉冲的作用下,把这个交流电压加到屏幕上。
松下PDP电视机保护电路设计的非常完善,有故障自诊断功能,利用面板上红灯闪烁次数来提示故障所在的板件及电路单元。
灯闪7下,说明故障在SU、SD、SC板内有电压不正常。
灯闪6下,说明故障在SC板内的能量回收电路。灯闪8下说明故障在SS板。如果屏幕坏,也会引起SU、SD板的损坏。这时需要把屏幕拆出来,在明亮的光线下即可看到某一个像素点上有打黑的黑点。
SC和SS板内都有能量回收电容,如果电路工作正常,这个电容上的电压应当等于VSUS电压的一半:即:90V。如果这个电压偏离这个数值,就说明这个电路板工作不正常。
在SC、SS板上都有一个发光管,如果这个发光管正常发光,就说明这个电路板工作基本正常。SU、SD板最常见的故障是与屏幕相连的驱动IC对地击穿。只要用表一测即可发现。SC、SD板如果轻微不正常,常会引起屏幕上有色班、图像偏绿、图像跳动、图像暗。
如果SU、SD板与屏的排线压接不好,会出现在屏幕上有水平横线、横带。C板与屏的数据电极相连,驱动屏的数据电极工作。
C板上有VDA电压:65V,5V电源。C板工作不正常,常出现垂直竖黑带,屏下边缘的排线内含有软封装的IC,这IC如果坏,会引起竖黑线或竖黑带。只要用放大镜仔细看屏数据排线内的软封装IC外壳是否鼓包、开裂,就可以判断屏是否有故障。
扩展资料:
等离子屏Y板、X板、Z板的具体作用:
等离子屏上Y板的作用是按照逻辑板上送来的时序信号,产生并为Y电极提供屏垂直方向扫描控制信号,扫描控制信号包括:等离子腔体内气体放电准备期、寻址期及维持放电所需脉冲;
同理,X板的作用是按照逻辑板上送来的时序信号,产生并为X电极提供提供屏水平方向扫描控制信号驱动信号。
Z板的作用是:通过电压Vs及能量恢复电路,产生信号电压,使子象素放电以实现显示‘产生清除脉冲,清除维持电极放电后遗留下来的壁电荷;在寻址期间产生电压,以保留Z阴极上壁电荷(负电荷)。 一般从位置与接线可以区分。
参考资料:百度百科-等离子显示屏
参考技术A对于不同品牌的产品,具有不同的电路结构,不同的设计和不同的维护故障。
以Panasonic为例:SC板是Y板,SS板是X板,SU和SD是上层缓存板和下层缓存板,C板是地址板。 SC,SU和SD板位于屏幕的左侧,SS板位于屏幕的右侧,C板位于屏幕的下边缘。
SC板的输出被添加到SU和SD板,SU板和SD板直接连接到屏幕以驱动屏幕。 SU板负责扫描屏幕的上半部分,SD板负责扫描屏幕的下半部分。
SC板生成交流电压,该电压驱动屏幕发光。此交流电压的周期为5 US,幅度为180VP-P。 SC板输出的放电交流电压同时施加到SU和SD板上。 SU和SD板在逻辑板发送的定时脉冲的作用下将此交流电压添加到屏幕上。
Panasonic PDP TV的保护电路设计具有故障自诊断功能,使用面板上闪烁的红灯数量指示故障的电路板和电路单元。
指示灯闪烁7次,表明SU,SD和SC板异常。
指示灯闪烁6次,表明SC板上的能量回收电路有故障。 8闪烁表示故障在SS板上。如果屏幕破裂,也会损坏SU和SD板。此时,需要拆卸屏幕,在强光下可以看到某个像素点上的黑点。
SC和SS板上有能量回收电容器。如果电路工作正常,则该电容器上的电压应等于VSUS电压的一半:90V。如果电压偏离该值,则表示电路板无法正常工作。
SC和SS板上有一个发光管。如果发光管正常发光,则说明电路板工作正常。 SU和SD板最常见的故障是与屏幕接地的驱动器IC的故障。只需用手表测量即可找到。如果SC和SD板略有异常,则它们通常会导致屏幕上的色彩偏移,绿色图像,抖动图像和深色图像。
如果SU和SD板之间的电缆连接不良,则屏幕上会有水平的水平线和水平带。 C板连接到屏幕的数据电极并驱动屏幕的数据电极工作。
C板具有VDA电压:65V,5V电源。 C板无法正常工作,并且经常出现垂直的垂直黑带。屏幕底部边缘的电缆包含软包装的IC。如果IC损坏,将导致垂直黑线或垂直黑带。只要使用放大镜仔细检查屏幕数据电缆中的软封装IC外壳是否凸起或破裂,就可以确定屏幕是否有故障。
扩展资料:
等离子屏Y板,X板,Z板的具体功能:
等离子屏幕上Y板的功能是根据逻辑板发送的定时信号为Y电极生成并提供垂直扫描控制信号。扫描控制信号包括:气体放电准备周期,寻址周期和等离子体室中的维持放电所需脉冲。
类似地,X板的功能是根据从逻辑板发送的定时信号为X电极产生并提供水平水平扫描控制信号驱动信号。
Z板的功能是通过电压Vs和能量恢复电路产生信号电压,使子像素放电,以实现显示器产生清除脉冲,清除维持电极放电后残留的壁电荷。在寻址期间产生电压,以将电荷(负电荷)保留在Z阴极的上壁上。可以区别于位置和接线。
参考技术B 卖板的老板们测都不测,只要成色和没少零件就发货.能不能用那是维修人员的事,他们只管卖 参考技术C 这只能借台等离子电视来试最好了!!!!!!!!!!!!!!!!!!!!!!! 参考技术D 我都知道只有装机试是最好的。但哪里来这么多屏啊。难道卖板子的老板们各种各样的屏都有吗?还是通过粗略测试下就发货呢?希望有高手指教下有什么好的办法测试驱动板的好坏吗?谢谢SwiftUI:检测 Mac 触控板上的手指位置
【中文标题】SwiftUI:检测 Mac 触控板上的手指位置【英文标题】:SwiftUI: Detect finger position on Mac trackpad 【发布时间】:2020-05-16 09:52:22 【问题描述】:我正在为 macOS 制作一个 SwiftUI 应用程序,我想通过检测用户手指的位置将触控板用作 (x, y) 输入。我希望能够检测到在触控板上搁置的多个手指(而不是拖动)。我该怎么做?
A similar question 以前曾被问过,但我再次问,因为那是近 10 年前的事了,答案都在 Obj-C 中(一个在 Swift 3 中),我想知道是否有更新方法。最重要的是,我不知道如何在我的 SwiftUI 应用程序中实现 Obj-C 代码,所以如果没有任何更新的方法,如果有人能解释如何实现旧的 Obj-C 代码,我将不胜感激。
为了说明我的意思,AudioSwift 应用程序的 video demo 完全符合我的要求。 macOS 本身也将其用于hand-writing Chinese(虽然我不需要识别字符)。
【问题讨论】:
我是个新手,我知道这是一项复杂的任务,所以如果有人能简单地用示例代码解释一下,我将不胜感激。非常感谢! 欢迎您!这是一个相当广泛的问题 - 涉及很多主题(如何混合 Objective-C 和 Swift,如何在 SwiftUI 中使用 AppKit,......)。首先,请访问Help Center 并阅读如何提问以及您可以要求什么。至少包含一些代码 (MRE) 以向其他人展示您确实试图解决它也很重要。我确实为您发布了答案,只是为了证明这个问题的广泛性和复杂性。 @zrzka 非常感谢您的详细回复!抱歉这个问题,下次我会小心的。 不客气。如果有任何不清楚并需要更多解释,请随时询问(在答案下)。 (有趣,我不能提你,嗯)。 【参考方案1】:始终将您的任务拆分为较小的任务,并一项一项地完成。以同样的方式提问,避免涉及大量主题的广泛问题。
目标
触控板视图(灰色矩形) 顶部的圆圈显示手指的物理位置第 1 步 - AppKit
SwiftUI 未提供所有必需的信息 AppKit 和NSTouch
可以 - normalizedPosition
。
第一步是创建一个简单的AppKitTouchesView
通过委托转发所需的触摸。
import SwiftUI
import AppKit
protocol AppKitTouchesViewDelegate: AnyObject
// Provides `.touching` touches only.
func touchesView(_ view: AppKitTouchesView, didUpdateTouchingTouches touches: Set<NSTouch>)
final class AppKitTouchesView: NSView
weak var delegate: AppKitTouchesViewDelegate?
override init(frame frameRect: NSRect)
super.init(frame: frameRect)
// We're interested in `.indirect` touches only.
allowedTouchTypes = [.indirect]
// We'd like to receive resting touches as well.
wantsRestingTouches = true
required init?(coder: NSCoder)
fatalError("init(coder:) has not been implemented")
private func handleTouches(with event: NSEvent)
// Get all `.touching` touches only (includes `.began`, `.moved` & `.stationary`).
let touches = event.touches(matching: .touching, in: self)
// Forward them via delegate.
delegate?.touchesView(self, didUpdateTouchingTouches: touches)
override func touchesBegan(with event: NSEvent)
handleTouches(with: event)
override func touchesEnded(with event: NSEvent)
handleTouches(with: event)
override func touchesMoved(with event: NSEvent)
handleTouches(with: event)
override func touchesCancelled(with event: NSEvent)
handleTouches(with: event)
第 2 步 - 简化的触控结构
第二步是创建一个简单的自定义 Touch
结构,该结构仅包含所有必需的信息并且与 SwiftUI 兼容(未翻转 y
)。
struct Touch: Identifiable
// `Identifiable` -> `id` is required for `ForEach` (see below).
let id: Int
// Normalized touch X position on a device (0.0 - 1.0).
let normalizedX: CGFloat
// Normalized touch Y position on a device (0.0 - 1.0).
let normalizedY: CGFloat
init(_ nsTouch: NSTouch)
self.normalizedX = nsTouch.normalizedPosition.x
// `NSTouch.normalizedPosition.y` is flipped -> 0.0 means bottom. But the
// `Touch` structure is meants to be used with the SwiftUI -> flip it.
self.normalizedY = 1.0 - nsTouch.normalizedPosition.y
self.id = nsTouch.hash
第 3 步 - 为 SwiftUI 包装它
NSViewRepresentable
文档
Binding
文档
第三步是创建一个 SwiftUI 视图来包装我们的 AppKit AppKitTouchesView
视图。
struct TouchesView: NSViewRepresentable
// Up to date list of touching touches.
@Binding var touches: [Touch]
func updateNSView(_ nsView: AppKitTouchesView, context: Context)
func makeNSView(context: Context) -> AppKitTouchesView
let view = AppKitTouchesView()
view.delegate = context.coordinator
return view
func makeCoordinator() -> Coordinator
Coordinator(self)
class Coordinator: NSObject, AppKitTouchesViewDelegate
let parent: TouchesView
init(_ view: TouchesView)
self.parent = view
func touchesView(_ view: AppKitTouchesView, didUpdateTouchingTouches touches: Set<NSTouch>)
parent.touches = touches.map(Touch.init)
第 4 步 - 创建一个TrackPadView
第四步是创建一个TrackPadView
,它在内部确实使用了我们的
TouchesView
并在其上画圈代表手指的物理位置。
struct TrackPadView: View
private let touchViewSize: CGFloat = 20
@State var touches: [Touch] = []
var body: some View
ZStack
GeometryReader proxy in
TouchesView(touches: self.$touches)
ForEach(self.touches) touch in
Circle()
.foregroundColor(Color.green)
.frame(width: self.touchViewSize, height: self.touchViewSize)
.offset(
x: proxy.size.width * touch.normalizedX - self.touchViewSize / 2.0,
y: proxy.size.height * touch.normalizedY - self.touchViewSize / 2.0
)
第 5 步 - 在主库中使用它ContentView
第五步是在我们的主视图中以接近真实触控板纵横比的纵横比使用它。
struct ContentView: View
var body: some View
TrackPadView()
.background(Color.gray)
.aspectRatio(1.6, contentMode: .fit)
.padding()
.frame(maxWidth: .infinity, maxHeight: .infinity)
完成项目
打开 Xcode 新建项目(macOS App & Swift & SwiftUI) 从this gist复制并粘贴ContentView.swift
【讨论】:
再次感谢您的宝贵时间,您的解决方案效果很好。我想知道,是否有可能“接管”鼠标光标,从而禁用系统手势(如 4 指滑动)并且即使光标没有开始悬停在TrackpadView
上,应用程序也可以接收触摸?如果有任何资源可以指点我,我将不胜感激! (编辑:奇怪,我也不能提你)
@qitianshi 很抱歉,但我不知道 - 没有尝试接管触控板以仅在我的应用程序中使用它。我也不知道这是否可能。可能是另一个问题的好候选人。
我尝试了您的代码并对其进行了修改,因为我只需要一个触摸事件,然后将其放入我的 SwiftUI 代码中,我收到有关编译器无法在合理时间内键入检查表达式的错误。在我将 TouchView 放入我自己的 SwiftUI View 代码之后。以上是关于请教等离子屏上的Y板和X板如何检测好坏?的主要内容,如果未能解决你的问题,请参考以下文章